在iPhone 6s上错放了CAGradientLayer
我有几个带有彩色背景的CAGradientLayers
,我在下面添加了CAGradientLayers
。
CAGradientLayer * gradientLayer = [CAGradientLayer layer]; gradientLayer.colors = [NSArray arrayWithObjects: (id) [UIColor colorWithWhite:1 alpha:0.3].CGColor, (id) [UIColor colorWithWhite:0.5 alpha:0.3].CGColor, nil]; gradientLayer.frame = label.bounds; gradientLayer.cornerRadius = label.layer.cornerRadius; [label.layer insertSublayer:gradientLayer atIndex:0];
在iPhone 4和iPhone 5s上它看起来很完美,但在iPhone 6s上, CAGradientLayers
水平错位,如下面的屏幕截图所示。
UIButtons也会出现此问题。
我正在运行iOS 9.3。
你需要的是处理autolayout约束。 这个swift代码代表了您在viewDidLayoutSubviews
方法中需要做的事情:
class ViewController: UIViewController { @IBOutlet weak var button: UIButton! let gradientLayer = CAGradientLayer() override func viewDidLoad() { super.viewDidLoad() gradientLayer.colors = [UIColor(white: 1, alpha: 0.3).CGColor, UIColor(white: 0.5, alpha: 0.3).CGColor] gradientLayer.frame = button.bounds gradientLayer.cornerRadius = button.layer.cornerRadius button.layer.insertSublayer(gradientLayer, atIndex: 0) } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() gradientLayer.frame = button.bounds } }
- iOS – 实现类似iMessage的滚动效果
- UITextView NSAttributedString大小
- 如何删除iOS中UITableView的底线
- 如何从CIAreaHistogram中提取主色?
- IB Designables:无法更新自动布局状态:无法从path加载可devise的元素(null)
- AVCaptureDevice的isLowLightBoostSupported总是在5S iOS7.1上返回false(对于automaticEnablesLowLightBoostWhenAvailable)
- 将声音以graphics方式表示为波形
- 只允许一个视图控制器的所有方向
- 硬件依赖的NSDateFormatter dateFromString:bug(返回nil)