注意:我在下面的UPDATE答案中添加了我的新解决方案。淡入/淡出UIScrollView的内容如Mobile Safari在其标签
我尝试重新创建我们在iPhone/iPod touch的Mobile Safari选项卡中看到的效果。
基本上,它是一个UIScrollView,它包含4个可重用的UIView(表现得像环形缓冲区),并且水平滚动。滚动时,UIView的不透明度将随着偏移而无缝地淡入/淡出。
目前,我在- (void)scrollViewDidScroll:(UIScrollView *)scrollView
做所有肮脏的工作。如从UIScrollView获取contentOffset,确定页面设置,计算contentOffset和每个UIView位置之间的增量,并在调用scrollViewDidScroll:
时决定/设置每个UIView的Alpha值。
它的工作原理,性能没问题,一切运行顺利,但唯一的问题是太多的计算。
我试过的UIView的beginAnimations:
和commitAnimations:
,但它在scrollViewDidScroll:
没用的,因为1)新的阿尔法值还是要由我自己来计算,和2)scrollViewDidScroll:滚动时不停叫,这是毫无意义的,在这里做动画。有什么方法可以用Core Animation重写这部分?所以我不必对每个UIView的alpha值进行数学运算,相反,我可以将整个作品留给Core Animation。
现在就找到它,它很棒 - 谢谢你的分享!一个小故障:最初的alpha并没有设置为唯一的离屏视图。我想我可以明确地调用updateAlpha,但也许在开始时显式设置contentOffset就足够了。思考? – 2011-03-06 03:56:20