Tôi đang thử nghiệm với iOS SDK và tôi có UIView
cấu trúc sau:Moving mặt nạ CALayer về cuộn trong một scrollview
UIView
UIImageView
- chỉ là một hình nềnUIImageView
(với mộtCALayer
mặt nạ)UIScrollView
Label
cấu Rất đơn giản, UIScrollView
là lớp trong suốt và thứ hai UIImageView
có một mặt nạ trên đó. Những gì tôi đang cố gắng làm là mặt nạ CALayer
sẽ di chuyển vị trí của nó theo vị trí của Nội dung trong chế độ xem cuộn. Nếu người dùng cuộn, vị trí của mặt nạ sẽ được cập nhật. Tôi đã giải quyết vấn đề này bằng cách sử dụng UIScrollView
's đại biểu:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint contentOffset = scrollView.contentOffset;
contentOffset.y = -contentOffset.y;
self.overlayImageView.viewlayer.mask.position = contentOffset;
}
Mask được tạo ra trong viewDidLoad
và không thay đổi trong suốt vòng đời view controller của.
Vấn đề là vị trí mặt nạ đang cập nhật quá chậm. Bằng cách đó, có vẻ mặt nạ đang theo dõi nội dung của chế độ xem cuộn, chứ không phải cuộn với nó. Phương thức ủy nhiệm scrollViewDidScroll
được gọi chính xác.
Để bạn hiểu rõ hơn về sự cố, tôi sẽ đính kèm video mà tôi đã tạo trong trình mô phỏng iOS. http://www.youtube.com/watch?v=w3xRl3LTngY
Vì vậy, câu hỏi là:
Có cách nào để làm cho mặt nạ cập nhật nhanh hơn hay đây là giới hạn của iOS?
Tuyệt vời, sửa chữa vấn đề. Cảm ơn nhiều. Thay đổi vị trí mặt nạ bây giờ là nhiều chất lỏng hơn. – Legoless