- 当UIScrollview横向滚动时,如果在上面添加5个按钮,但当前scrollview 一页只能显示3个按钮,此时有一项要求,需要在点击第3个按钮时,scrollview自动向左滑动,显示后面的按钮等,需要在按钮点击方法或者UIScrollview的滑动代理方法scrollViewDidEndDecelerating里面添加下面内容。
CGFloat needMoveVisableOffset = btn.center.x - self.headerBkView.width/2;
if(needMoveVisableOffset < 0){
needMoveVisableOffset = 0;
}
CGFloat maxMoveOffset = self .headerBkView.contentSize.width - self.headerBkView.size.width;
if(needMoveVisableOffset > maxMoveOffset){
needMoveVisableOffset = maxMoveOffset;
}
[self .headerBkView setContentOffset:CGPointMake(needMoveVisableOffset, 0) animated:YES];
- 当拖动scrollview滑动的时候,正常情况下,下面两种方法都会执行,如果当拖动scrllview停止之前未减速或者未等scrollview滑动结束,立即切换了页面,此时scrollview不会掉用scrollViewDidEndDeceleration方法,只执行scrollViewDidEndDragging,此时需要在decelerate为NO时,重新执行后续动作。
//当离开UIScrollView的时候
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
if(!decelerate){
// dosomething
}
}
//当UIScrollView停止滚动的时候
-(void)scrollViewDidEndDeceleration:(UIScrollView *)scrollView{
// dosomething
}