正如 Ankit 已经说过的,你最好的选择是使用
- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage
但是,我很欣赏你需要有一个 UIImage 才能做到这一点。如果你的设计师不能为你提供这个,你可以做的是在代码中绘制你自己的 UIImage 。
- (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
显然,这段代码不会为您绘制渐变,但它向您展示了绘制 UIImage 的基础知识。我会看一下类似下面的教程,以了解如何绘制您想要的确切渐变:
http://www.raywenderlich.com/2033/core-graphics-101-lines-rectangles-and-gradients