UITableView 或 UIScrollView 点击状态栏列表回到顶部

整理来自互联网~
这是tableView继承的scrollView的一个属性 scrollsToTop。
官方说明是这样的:
// When the user taps the status bar, the scroll view beneath the touch which is closest to the status bar will be scrolled to top, but only if its `scrollsToTop` property is YES, its delegate does not return NO from `shouldScrollViewScrollToTop`, and it is not already at the top.
// On iPhone, we execute this gesture only if there's one on-screen scroll view with `scrollsToTop` == YES. If more than one is found, none will be scrolled.
@property(nonatomic) BOOL scrollsToTop; // default is YES.
 
想要实现此功能需要满足以下条件:
1.屏幕中只有一个scrollView或tableView。
2.它的scrollsToTop属性设置为YES,默认为YES。
 
想要禁用掉此功能将scrollsToTop属性设置为NO即可。
 
@近日一个朋友问起,一个ViewController下,放了多个tableView时,点击状态栏不能回到顶部,起初以为是他把scrollsToTop设置为NO,细看之下才发现不是,原来
On iPhone, we execute this gesture only if there’s one on-screen scroll view with scrollsToTop == YES. If more than one is found, none will be scrolled.
@说的是:iOS 下 UITableView/UIScrollView 有个特性:点击状态栏回到顶部。如果当前 view 下有多个 scrollView,或者多个 tableView 嵌套,点击回到顶部就无效,因为系统不知道该响应哪个,索性就全部禁用.
@解决办法:当前显示哪个tableView,哪个的scrollsToTop就设置为YES,其余的设置为NO;
上一篇:外部主机无法访问宿主机内容器是怎么回事


下一篇:iOS点击状态栏回到顶部底层实现原理