CALayer mit CATextlayer füllen; vereinfachen mit Blocks ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • CALayer mit CATextlayer füllen; vereinfachen mit Blocks ?

    Hi,

    ich habe mal wieder eine Frage zum vereinfachen.
    Ich möchte in einem CAlayer eine kleine Tabelle haben wo die besten 10 Dinge angezeigt werden sollen. Im Moment mache ich dieses so:


    Quellcode

    1. -(NSView *)bestofalldraw
    2. {
    3. CALayer *viewLayer = [CALayer layer];
    4. [viewLayer setBackgroundColor:CGColorCreateGenericRGB(0.0, 0.0, 0.0, 1.0)]; //RGB und der lieber Alpha Channel ;-)
    5. [viewLayer setBorderColor:CGColorCreateGenericRGB(1.0,0.0,0.0,1.0)];
    6. [viewLayer setBorderWidth:4.0];
    7. CATextLayer *label = [[CATextLayer alloc] init];
    8. [label setFont:@"Arial"];
    9. [label setFontSize:16];
    10. [label setFrame:CGRectMake(5,110,80,20)];
    11. [label setString:name];
    12. [label setAlignmentMode:kCAAlignmentCenter];
    13. [label setForegroundColor:CGColorCreateGenericRGB(0.0,0.5,0.5,1.0)];
    14. [label setShadowRadius:0.2];
    15. [label setShadowColor:CGColorCreateGenericRGB(1.0,1.0,1.0,0.8)];
    16. [label setShadowOpacity:0.4];
    17. [viewLayer addSublayer:label];
    18. CATextLayer *label1 = [[CATextLayer alloc] init];
    19. [label1 setFont:@"Arial"];
    20. [label1 setFontSize:16];
    21. [label1 setFrame:CGRectMake(200,110,40,20)];
    22. [label1 setString:anzahlbenutzt"];
    23. [label1 setAlignmentMode:kCAAlignmentCenter];
    24. [label1 setForegroundColor:CGColorCreateGenericRGB(0.0,0.5,0.5,1.0)];
    25. [label1 setShadowOffset:CGSizeMake(0,3)];
    26. [label1 setShadowRadius:5.0];
    27. [label1 setShadowColor:CGColorCreateGenericRGB(1.0,1.0,0.5,1.0)];
    28. [label1 setShadowOpacity:0.8];
    29. [viewLayer addSublayer:label1];
    30. [bestofall setWantsLayer:YES];
    31. [bestofall setLayer:viewLayer];
    32. return bestofall;
    33. }
    Alles anzeigen


    Dieses ist nur für eine Sache. Das müsste sich doch mit einer Schleife oder Blocks einfacher gestalten lassen oder ?

    Die zweite Frage wäre, ob dieses so sinnvoll ist oder ob ich besser ein Framework ala CorePlot nutzen sollte ? (Ich weiß CorePlot wäre etwas oversize aber sehr nett ;) )

    Vielen Dank und einen schönen Sonntag noch