为啥 setContentOffset 在 scrollViewDidEndDragging 方法中不起作用?
Posted
技术标签:
【中文标题】为啥 setContentOffset 在 scrollViewDidEndDragging 方法中不起作用?【英文标题】:Why setContentOffset does not work in scrollViewDidEndDragging method?为什么 setContentOffset 在 scrollViewDidEndDragging 方法中不起作用? 【发布时间】:2013-03-06 06:14:34 【问题描述】:我想做一些类似于 Clear app 的事情:当您拖动到顶部时,会出现一个新单元格,并且它会保留在表格视图的顶部(我认为使用 setContentOffset)。问题是,当我尝试在方法 scrollViewDidEndDragging (或任何其他类似方法)中设置表格视图内容偏移量时,它不起作用。基本上内容偏移设置被忽略。我的代码是这样的:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
[_myTableView setContentOffset:CGPointMake(0, -100) animated:YES];
你能帮帮我吗?
【问题讨论】:
_myTableView 和 ScrollView 是不同的视图? 不,他们不是。 _myTableView 作为委托“自我”,所以这个方法应该识别它。 嗨。在***.com/a/27088865/1510171查看我的回答 【参考方案1】:试试
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
[_myTableView setContentOffset:CGPointMake(0, -100) animated:NO];
【讨论】:
内容偏移量暂时设置得很好,但它变得像以前一样:/【参考方案2】:对于 Swift 3.0
DispatchQueue.main.async in
_myTableView.setContentOffset(CGPoint(x: 0, y: -100), animated: true)
【讨论】:
也可以使用scrollViewWillBeginDecelerating
func 代替scrollViewDidEndDragging
以上是关于为啥 setContentOffset 在 scrollViewDidEndDragging 方法中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
手动调用 UIRefreshControl 并使用 setContentOffset
iOS setContentOffset 在 ipad 上不起作用