Tôi đang thêm CAGradientLayer
vào chế độ xem. Khi chế độ xem được tự động thay đổi kích thước (chẳng hạn như sau khi xoay vòng), lớp gradient không được thay đổi kích thước. Gradient có thể được đặt thành tự động thay đổi kích thước giống như chế độ xem không? Cũng lưu ý rằng tôi đang sử dụng các ràng buộc bố cục tự động trong khung nhìn.Làm thế nào để thay đổi kích thước một CAGradientLayer sau khi quay?
Đây là những gì tôi đang làm:
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = CGRectMake(0.0, 0.0, frame.size.width, frame.size.height);
gradientLayer.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:255.0/255.0f green:255.0/255.0f blue:255.0/255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:233.0/255.0f green:233.0/255.0f blue:233.0/255.0f alpha:1.0f] CGColor], nil];
[self.layer insertSublayer:gradientLayer atIndex:0];
có thể trùng lặp của [CALayer autoresizingMask không dành cho iOS SDK?] (Http://stackoverflow.com/questions/8600826/calayer-autoresizingmask-not-for-ios-sdk) – CodaFi
@CodaFi Câu hỏi hơi khác. Ngoài ra, mặc dù có một câu trả lời được chấp nhận cho câu hỏi đó dường như vô dụng đối với trường hợp này. – memmons
Bạn nói đúng, câu trả lời đó là vô giá trị. Ghi đè '-layoutSubviews' và gán khung của bạn trong đó. – CodaFi