在iPhone应用程序中手动绘制渐变?

Mik*_*ter 11 iphone cocoa-touch

如果我有两个UIColors,那么在任意大小的区域之间绘制均匀渐变的最佳方法是什么?

我猜你会创建一个UIView子类并在drawRect方法中使用CG绘图方法.我只是不知道哪些,或者是否有任何陷阱需要注意,比如性能.有没有人这样做过?

Ant*_*kin 50

#import <QuartzCore/QuartzCore.h>    
- (void) setGradient {
    CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = self.view.bounds;
    gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor] CGColor], (id)[[UIColor blackColor] CGColor], nil];
    [self.view.layer insertSublayer:gradient atIndex:0];     
}
Run Code Online (Sandbox Code Playgroud)

不要忘记将QuartzCore库添加到项目中.

  • 我非常喜欢这个解决方案.使用代码,而不是引用.恕我直言,它应该得到更多的投票. (2认同)

Ben*_*ieb 20

你会想要使用CGGradient.请参阅iPhone开发人员中心" CGGradient Reference "文档.

  • 您可以在离开答案时提供示例。 (2认同)