настоящее время я использую следующий метод, чтобы установить цвет фона с моей точки зренияИОС цвет фона появляется только на половине экрана в ландшафтном режиме
//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;
Вышеупомянутые работы прекрасно подходят как в пейзажном режиме, так и в портретном режиме, но не в градиенте. Любые идеи о том, как я могу заставить градиент работать?
Привет, Джеймс, см. Мое обновление, я размещаю лучший способ справиться с этим – Leo