ho questo codice di lavoro:Perché il mio CGGradient non funziona con un UIColor preimpostato?
NSMutableArray *shadowColors = [NSMutableArray arrayWithCapacity:2];
color = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; // Declaration using components
[shadowColors addObject:(id)[color CGColor]];
color = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.0]; // Declaration using components
[shadowColors addObject:(id)[color CGColor]];
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColors(space, (CFArrayRef)shadowColors, NULL);
CGColorSpaceRelease(space);
CGFloat sw = 10.0; // shadow width
CGPoint top1 = CGPointMake(x, y+width/2.0);
CGPoint top2 = CGPointMake(x + sw, y+width/2.0);
CGPoint side1 = CGPointMake(x+width/2.0, y);
CGPoint side2 = CGPointMake(x+width/2.0, y+sw);
CGContextDrawLinearGradient(c, gradient, top1, top2, 0);
CGContextDrawLinearGradient(c, gradient, side1, side2, 0);
CGGradientRelease(gradient);
Le dichiarazioni di colore sono la parte che mi interessa, linee 2 e 4. Quando io li dichiarare come mostrato, funzionano bene, ma se sostituire quei due linee con l'equivalente (ho pensato, almeno) [UIColor blackColor]
e [UIColor clearColor]
poi i miei gradienti scompaiono. I colori che uso non fanno alcuna differenza, posso usare greenColor
e redColor
e continuano a non funzionare.
Mi manca qualcosa o si tratta di un bug nei framework Apple?
Il codice che non lavoro. E questa è solo la prima sezione, tutto il resto è lo stesso.
NSMutableArray *shadowColors = [NSMutableArray arrayWithCapacity:2];
color = [UIColor blackColor];
[shadowColors addObject:(id)[color CGColor]];
color = [UIColor clearColor];
[shadowColors addObject:(id)[color CGColor]];
Puoi mostrare * esattamente * come appare il tuo codice che non funziona? PS: Perché lanci qualcosa all'id? Questo non ha senso. – Eiko
L'esecuzione dell'identificazione non elimina l'avviso 'passare argomento da tipo di puntatore incompatibile'. – kubi
oh, e ho aggiornato la mia domanda con il codice non funzionante. – kubi