Ede*_*iss 7 iphone uibutton cagradientlayer ios6
对于一个应用程序,我必须创建一个UIButton填充渐变和背景图像.一切正常,直到我将操作系统从iOS 5.1升级到最近发布的iOS 6.
以下是模拟器的两个屏幕截图:


好吧,第一个屏幕截图显示了我需要(并且做了),你可以看到棕色背景和灰色辐射.
下面是具有相同按钮但运行iOS 6的屏幕截图.正如你所看到的那样,渐变消失了,并且在底部出现了一个奇怪的白色条带UIButton.
我已经看过这是一个bug还是什么,但我什么都没找到,也许这里有人遇到过同样的问题?这是我的渐变代码
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = btnCountry.bounds;
UIColor *colorTop = [UIColor colorWithRed:.992f green:.992f blue:.992f alpha:1];
UIColor *colorBot = [UIColor colorWithRed:.788f green:.769f blue:.745f alpha:1];
gradient.colors = [NSArray arrayWithObjects:(id)[colorTop CGColor], (id)[colorBot CGColor], nil];
gradient.borderColor = [UIColor colorWithRed:.545f green:.506f blue:.459f alpha:1].CGColor;
gradient.borderWidth = 1;
gradient.masksToBounds = YES;
gradient.cornerRadius = 11;
[[btnCountry layer] insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)
小智 11
这在ios6中是一个非常奇怪的问题,我在设置渐变时遇到了同样的问题:
[myButton.layer insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)
所以我尝试将底线更改为在iOS 6以及IOS的较低版本中完美运行
[myButton.layer insertSublayer:gradient below:myButton.titleLabel.layer];
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助
正如你在我的评论中看到的那样,问题来自课堂UIGroupTableViewCellBackground,我只是把它隐藏起来.我认为这不是一个"干净"的解决方案,如果你有一个更好的解决方案,我将很高兴听到它:-)
这是代码:
for(UIView* subView in btnCountry.subviews)
if([subView isKindOfClass:NSClassFromString(@"UIGroupTableViewCellBackground")])
[subView setHidden:YES];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3067 次 |
| 最近记录: |