Bu çalışma kodu var: onlar sadece iyi çalışır, gösterildiği gibiCGGradient'im neden önceden ayarlanmış bir UIColor ile çalışmıyor?
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);
renk beyanlar ilgilendiğim parçasıdır, hat 2 ve 4. Onları bildirdiğinizde, ama şu ikisini değiştirirseniz [UIColor blackColor]
ve [UIColor clearColor]
eşdeğeriyle (en azından düşündüm) çizgilerdeyim ve sonra geçişlerim kaybolur. Kullandığım renkler hiçbir fark yaratmıyor, greenColor
ve redColor
'u kullanabilirim ve hala çalışmıyorlar.
Bir şeyi özlüyor muyum, yoksa bu Apple'ın çerçevelerindeki bir hata mı?
değil çalışır o kodu. Ve bu sadece ilk bölüm, her şey aynı.
NSMutableArray *shadowColors = [NSMutableArray arrayWithCapacity:2];
color = [UIColor blackColor];
[shadowColors addObject:(id)[color CGColor]];
color = [UIColor clearColor];
[shadowColors addObject:(id)[color CGColor]];
* Tam olarak * kodunuzun nasıl görünmediğini gösterir misiniz? Not: Neden id’ye bir şey atıyorsun? Bu mantıklı değil. – Eiko
Kimlik için döküm, 'uyumsuz işaretçi türünden gelen bir bağımsız değişken iletme' uyarısı ile kaybolur. – kubi
oh ve sorumu çalışmayan kodla güncelledim. – kubi