注意:我在下面的UPDATE答案中添加了我的新解决方案.
我尝试重新创建我们在iPhone/iPod touch上的Mobile Safari选项卡中看到的效果.
基本上,它是一个UIScrollView,它包含4个可重用的UIView(就像环形缓冲区一样),并且水平滚动.滚动时,UIView的不透明度将与偏移无缝淡入/淡出.
目前,我做了所有肮脏的工作- (void)scrollViewDidScroll:(UIScrollView *)scrollView
.例如从UIScrollView获取contentOffset,确定pageingation,计算contentOffset和每个UIView位置之间的差值,并在scrollViewDidScroll:
调用时确定/设置每个UIView的alpha值.
它工作正常,性能还可以,一切运行顺利,但唯一的问题是计算太多.
我试过的UIView的beginAnimations:
和commitAnimations:
,但它是无用scrollViewDidScroll:
的,因为1)新的阿尔法值还是要由我自己来计算,和2)scrollViewDidScroll:滚动时不停叫,这是毫无意义的,在这里做动画.有没有办法用Core Animation重写这个部分?因此,我不必自己对每个UIView的alpha值进行数学计算,相反,我可以将整个作品留给Core Animation.