gpt4 book ai didi

ios - UIPickerView - 渐变在 iOS 8 中被破坏

转载 作者:行者123 更新时间:2023-11-29 12:36:00 24 4
gpt4 key购买 nike

在 iOS 8 之前,能够为 UIPickerView 设置渐变背景,这样微调器就会显示在它的顶部和后面,渐变背景如下所示:

enter image description here

这是 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 中使用以上代码,显示如下:

<PastedGraphic-2.tiff>

两个选择器仍然有效,但如您所见,UI Not Acceptable 。

建议?提前致谢!

最佳答案

好的,我找到了一个解决方法,但仍然愿意接受其他更好的选择。我的解决方案是:

  1. 使 UIPickerView backgroundColor 透明
  2. 在 UIPickerView 后面放置一个 UILabel
  3. 如上所述创建我的渐变并将其作为子层添加到 UILabel :atIndex 0

这是代码示例:

    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];

这是完成的屏幕区域捕获:

Finished UIPicker w/ gradient background

关于ios - UIPickerView - 渐变在 iOS 8 中被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com