在iOS 8之前,能够将渐变背景设置为UIPickerView,以便旋转器将显示在其顶部和后面,梯度背景如下所示:

以下是iOS 8之前的上述代码:
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = pickerView.bounds;
gradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor blackColor] CGColor],
(id)[[UIColor darkGrayColor] CGColor],
(id)[[UIColor lightGrayColor] CGColor],
(id)[[UIColor whiteColor] CGColor],
(id)[[UIColor lightGrayColor] CGColor],
(id)[[UIColor darkGrayColor] CGColor],
(id)[[UIColor blackColor] CGColor],
nil];
[pickerView.layer insertSublayer:gradient atIndex:0];使用iOS 8中的上述代码,如下所示:

这两个选择器仍然可以使用,但正如您所看到的,UI是不可接受的。
有什么建议吗?提前感谢!
发布于 2014-10-13 12:38:03
好吧,我找到了解决办法,但还是有其他更好的选择。我的解决办法是:
下面是代码示例:
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = colorPickerBackgroundLabel.bounds;
gradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor blackColor] CGColor],
(id)[[UIColor darkGrayColor] CGColor],
(id)[[UIColor lightGrayColor] CGColor],
(id)[[UIColor whiteColor] CGColor],
(id)[[UIColor lightGrayColor] CGColor],
(id)[[UIColor darkGrayColor] CGColor],
(id)[[UIColor blackColor] CGColor],
nil];
[colorPickerBackgroundLabel.layer addSublayer:gradient];以下是完成的屏幕区域截图:

https://stackoverflow.com/questions/26314636
复制相似问题