我正在尝试使用iOS SDK,有如下的UIView
结构:
UIView
UIImageView
- 只有一个背景图像UIImageView
(带有CALayer
遮罩层)UIScrollView
Label
非常简单的结构,UIScrollView
是透明层,第二个UIImageView
上有一个遮罩层。我想做的是,CALayer
遮罩层的位置会根据滚动视图中内容的位置而移动。如果用户滚动,就应该更新遮罩层的位置。我已经通过使用UIScrollView
的委托解决了这个问题:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint contentOffset = scrollView.contentOffset;
contentOffset.y = -contentOffset.y;
self.overlayImageView.viewlayer.mask.position = contentOffset;
}
遮罩是在 viewDidLoad
中创建的,并且在视图控制器的生命周期中不会更改。
问题在于,遮罩位置更新太慢了。这样看起来遮罩是跟随滚动视图的内容移动,而不是与其一起滚动。 scrollViewDidScroll
代理方法被正确调用。
为了让您更好地了解该问题,我在 iOS 模拟器中制作了一个视频。 http://www.youtube.com/watch?v=w3xRl3LTngY
所以问题是:
有没有办法使遮罩更新更快,或者这是 iOS 的极限?