Vis*_*l16 13 objective-c uisegmentedcontrol uiscrollview swift uistackview
我有一个UIScrollView
带pagingEnabled
.添加5 UIStackView
到子视图,UIScrollView
也有一个UISegmentedControl
.我想显示当前选定的段,并且还想禁用水平滚动,但视图将能够垂直滚动.
举一个例子:
UISegmentedControl
我如何使用它来实现此功能 UIScrollView
尝试过的逻辑:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
CGFloat xOff = self.scrollView.frame.size.width * self.currentPage;
[self.scrollView setContentSize:CGSizeMake(xOff, self.scrollView.contentSize.height)];
//[self.scrollView setContentOffset:CGPointMake(xOff, 0) animated:true];
}
Run Code Online (Sandbox Code Playgroud)
但在更改页面后使用此UIScrollView当我再次滚动时转到0页面.
您可以在启用分页的情况下使用UICollectionView,在内部可以使用垂直滚动启用实现UIScrollView.禁用UICollectionView滚动并使用以下代码更改单击时的索引集合单元格:
接受新的,已编辑的答案:
在viewDidLayoutSubviews中添加它
迅速
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let indexPath = IndexPath(item: 12, section: 0)
self.collectionView.scrollToItem(at: indexPath, at: [ .centeredHorizontally], animated: true)
}
Run Code Online (Sandbox Code Playgroud)
通常,.centerVertically就是这种情况
Objective-C的
-(void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:12 inSection:0];
[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
404 次 |
最近记录: |