【发布时间】:2015-06-23 22:53:03
【问题描述】:
我目前正在使用以下方法来设置我的视图的背景颜色
//Set the background color
CAGradientLayer *bgLayer = [BackgroundLayer blueGradient]; <---Calls method below
bgLayer.frame = self.view.bounds;
//self.view.layer.backgroundColor = [UIColor redColor].CGColor;
[self.view.layer insertSublayer:bgLayer atIndex:0];
这是它获取渐变颜色的方式 - 这是上面调用的方法
@implementation BackgroundLayer
//Blue gradient background
+ (CAGradientLayer*) blueGradient {
UIColor *colorOne = [UIColor colorWithRed:(120/255.0) green:(135/255.0) blue:(150/255.0) alpha:1.0];
UIColor *colorTwo = [UIColor colorWithRed:(57/255.0) green:(79/255.0) blue:(96/255.0) alpha:1.0];
NSArray *colors = [NSArray arrayWithObjects:(id)colorOne.CGColor, colorTwo.CGColor, nil];
NSNumber *stopOne = [NSNumber numberWithFloat:0.0];
NSNumber *stopTwo = [NSNumber numberWithFloat:1.0];
NSArray *locations = [NSArray arrayWithObjects:stopOne, stopTwo, nil];
CAGradientLayer *headerLayer = [CAGradientLayer layer];
headerLayer.colors = colors;
headerLayer.locations = locations;
return headerLayer;
}
@end
现在在纵向模式下,背景看起来很好。然而在横向模式下,它只覆盖了一半的屏幕,另一半是白色的。这是为什么 ?我该如何解决它。我尝试了以下更改颜色
self.view.layer.backgroundColor = [UIColor redColor].CGColor;
以上在横向和纵向模式下都可以正常工作,但它不是渐变。关于如何使渐变起作用的任何想法?
【问题讨论】:
-
嗨,詹姆斯,看看我的更新,我发布了一个更好的方法来处理这个
标签: ios background landscape-portrait