색이있는 배경이 약간있는 UILabels
이고 아래에 CAGradientLayers
을 추가했습니다.iPhone 6에서 CAGradientLayer가 잘못 표시되었습니다.
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];
하지만이 아이폰에 CAGradientLayers
6S 수평 아래 스크린 샷과 같이 잘못된다.
이 문제뿐만 아니라 UIButtons에 대해 발생합니다.
iOS 9.3을 실행 중입니다.
어디에서 볼 때 컨트롤러 수명주기에 해당 코드가 배치됩니까? – beyowulf
레이블 '및 버튼'프레임이 변경되면 그라디언트 레이어도 함께 변경해야합니다. 예를 들어 레이블이 자동 레이아웃으로 배치되어 있고보기가 회전 된 경우 그래디언트의 프레임을 업데이트해야합니다. 뷰 컨트롤러의'viewDidLayoutSubviews'에서 이것을 할 수 있고 그라디언트로 레이블/버튼을 서브 클래스 화하고'layoutSubviews'에서 그래디언트 프레임을 업데이트 할 수 있습니다. – keithbhunter
@beyowulf 코드는 viewDidLoad 메서드에 있습니다. –