在iOS开发中 很多人会使用segment来控制滚动试图 然后滚动试图也同时控制segment的需求。下面就来简单说说segment控制滚动试图的代码和原理。
首先 创建滚动试图
- (void)creatScroller{
_scroller = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, Width, Height)];
_scroller.delegate = self;
_scroller.pagingEnabled = YES;
_scroller.contentSize = CGSizeMake(Width*2, Height);
_scroller.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:_scroller];
}
- (void)creatTableView{
for(NSInteger i = 0;i < 2;i++){
_leftView = [[UITableView alloc]initWithFrame:CGRectMake(0+Width*i, 0, Width, Height)];
_leftView.delegate = self;
_leftView.separatorStyle = UITableViewCellSeparatorStyleNone;
_leftView.backgroundColor = [UIColor grayColor];
[_scroller addSubview:_leftView];
}
}
第三步 就可以使用segment点击事件来控制滚动试图的滑动了
- (void)click:(UISegmentedControl *)control{
[_scroller setContentOffset:CGPointMake(Width*control.selectedSegmentIndex, 0)];
}
第四步 接着实现滚动试图的代理
//滚动视图停止时候调用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
_num = (NSInteger)(scrollView.contentOffset.x - Width)/Width +1;
_segment.selectedSegmentIndex = _num;
}