滚动时禁用 scrollPosition
Posted
技术标签:
【中文标题】滚动时禁用 scrollPosition【英文标题】:disable scrollPosition while scrolling 【发布时间】:2014-07-09 20:09:41 【问题描述】:我有一个程序使用scrollPosition
= UITableViewScrollPositionTop
在顶部显示选定的行。但是当我向下滚动并单击任何其他行时,滚动条会滚动回第一个选定的行。有什么办法可以在我滚动时禁用UIScrollPositionTop
。或者还有其他解决方案吗?
此方法在定期间隔后调用以突出显示(选择)行。
-(void)highlightcell:(int *)rows
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:*rows inSection:0];
[tableview selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
【问题讨论】:
【参考方案1】:您可以使用 UIScrollView 委托来检测滚动何时开始以及何时停止,然后使用标志来保持滚动状态,如下所示:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
isScrolling = YES;
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
isScrolling = NO;
然后在你的方法中:
-(void)highlightcell:(int *)rows
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:*rows inSection:0];
if (isScrolling)
[tableview selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
else
[tableview selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
【讨论】:
感谢您的回答。但它仍然不起作用。每当我向下滚动并尝试单击任何行时,它都会滚动回当前突出显示的行。 现在可以了。我按照您的建议使用了带有 scrollViewDidEndDragging 和 BOOL 值的 scrollViewDidEndAccerlating 方法。非常感谢男人【参考方案2】:尝试这样做..
Self.Table_small.scrollEnabled=NO;
【讨论】:
以上是关于滚动时禁用 scrollPosition的主要内容,如果未能解决你的问题,请参考以下文章