我遇到了奇怪的行为。我正在使用在控制器中设置的自定义样式按钮:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.signOutButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[self.signOutButton setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
CAGradientLayer *btnGradient = [CAGradientLayer layer];
btnGradient.frame = self.signOutButton.bounds;
btnGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:102.0f / 255.0f green:102.0f / 255.0f blue:102.0f / 255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:51.0f / 255.0f green:51.0f / 255.0f blue:51.0f / 255.0f alpha:1.0f] CGColor],
nil];
[self.signOutButton.layer insertSublayer:btnGradient atIndex:0];
}
它在 iOS 5 中工作正常。但如果我为 iOS 6 构建此程序并启用故事板的自动布局,则我的样式中的渐变会消失/变得透明(但标题仍然可见)。
如果我禁用自动布局 - 渐变又回来了。有人可以用自动布局解释这种行为吗?
在 viewDidLoad 中,在自动布局下,您的视图还没有框架,因此您要使图层具有框架CGRectZero
.
您需要移动此代码,或者至少移动设置渐变层框架的部分,以viewDidLayoutSubviews
或类似的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)