联动是一个专业术语,点击按钮切换视图,滑动视图切换按钮,是一个特定的应用场景
实现起来分两个过程来做:
1.点击按钮切换视图
scrollview上内容的滚动,就是控制scrollview的偏移量
在按钮点击方法中:先获取按钮的位置索引,然后设置scrollview的偏移量属性,两步搞定
NSUInteger index = [self.titlesViews.subviews indexOfObject:titleButton];
self.scrollview.contentOffset = CGPointMake(index * self.scrollview.TS_width, self.scrollview.contentoffset.y);
2.切换视图来切换按钮
先实现代理,在scrollViewDIdEndDecelerating方法中三步
偏移量除以宽度获取到按钮位置索引,根据索引获取按钮,调用点击方法
共同点是都要获取位置按钮的位置索引,都是在用一个公式index * self.scrollview.TS_width
但是有没有一些疑问呢,这两个方法会不会造成循环调用?
scrollViewDIdEndDecelerating中调用了点击方法,点击方法中又实现了代码偏移,当视图偏移静止后,又会调用scrollViewDIdEndDecelerating方法?
测试后证明是不会的,因为scrollview代理方法的触发事件是手动的滑动,通过代码让其滑动不会形成事件,记住不会,放心使用
网友评论