场景
Paste_Image.png上面的标签栏是使用 UICollectionView 实现的,需要实现的效果是:
Paste_Image.png规则:
上面的标签栏,选中的标签显示中间,偏左/偏右的标签由于如果移动到中间,就会使左边/右边空出来,因此显示collectionView顶在最左/最右即可,如下图(本例子中有 0 到 9 标题的标签)
在切换下面的控制器界面时,上面的标签会跟随着切换到选中的标签并进行滚动(满足上面的规则滚动)
滚动代码:
1,使用 contentOffset 属性设置
// 滚动到最右代码
[self.collectionView setContentOffset:CGPointMake([self widthOfCollectionView] - CGRectGetWidth(self.frame), 0) animated:YES];
animated
设置为 YES
时:滚动的位置并不准确
设置 NO
时:能够准确滚动
2,通过 - (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPosition animated:(BOOL)animated;
方法滚动
[self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:self.labelCount-1 inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:NO];
animated
设置为 YES
时:滚动的位置并不准确
设置 NO
时:能够准确滚动
总结:
因此,在 UIScrollView , UITableView , UICollectionView 设置进行滚动时,如果设置 animated
设置为 YES
不能够准确的滚动时,设置成 NO
尝试
使用的场景还有:
tableView 滚动到顶部或者指定位置
网友评论