浮生猎趣

ls *.fun

修复iOS中UIScrollView的scrollToTop设置后不生效的问题

| Comments

iOS中的UIScrollView有一个属性scrollToTop,设置为YES之后,点击设备的状态栏(StatusBar)即可将滚动试图的内容滚动到最顶端,在滚动列表很长的时候,这个特性十分有用。

今日在使用这一属性的时候,发现部分情况下,一切正常;但是也有时候,点击状态栏,滚动条没反应!检查了代码,确定已经设置scrollToTop = YES,但是总是会有不起作用的情况。

于是到万能的StackOverflow寻求答案,不失所望,找到了类似的问题:scroll UITableView to top when tapping top of the screen

答案也解释得很清楚了,如下:

如果同一个UIViewController中包含了多个UIScrollView,那么只能有一个ScrollView被设置为scrollToTop = YES; 另外的都要设置为NO,否则就会被系统忽略。 比较坑爹的是,该属性默认为YES,在UIScrollView.h中可以看到声明如下:

1
  @property(nonatomic) BOOL  scrollsToTop;  // default is YES.

所以我们需要显示设置其他的scrollView.scrollToTop = NO

原文作者: lslin
原文链接: http://blog.lessfun.com/blog/2014/01/13/fix-uiscrollview-scrolltotop-not-working/
版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

发表评论