0.效果如下 界面1-界面6是button,点击之后下面的视图(scrollview)发生相应的改变,下面的红色类似下划线的view也跟着改变;滑动下面的scrollview,上面的button和下划线红色view也相应的改变;
![](https://img.haomeiwen.com/i2508441/9a57ecfc33966cdd.gif)
1.给UIView的添加类别方法,让UIview可以直接设置frame,不需要用的时候在引入一个中间变量转换一下;
![](https://img.haomeiwen.com/i2508441/4f6d412f7e255124.png)
实现setter和getter方法;
![](https://img.haomeiwen.com/i2508441/9b73c24240e00b14.png)
2.新建一个PageTitleView 继承 UIView;
a.建立一个协议,写一个button被点击的回调方法,传一个代表button的值,比如tag;
b.写一个初始化方法参数有frame和button的title array
c..写一个移动下划线(当button被点击了移动,当viewcontroller里的scrollview发生偏移了也跟着偏移)
d.选中对应按钮(viewcontroller里的scrollview发生偏移停止减速之后调用,然后再在scrollview的代理方法里调用c方法)
![](https://img.haomeiwen.com/i2508441/9015b50d386bf6d0.png)
3.@implementation PageTitleView
![](https://img.haomeiwen.com/i2508441/ae1a5a2a2d49307a.png)
a.初始化方法
![](https://img.haomeiwen.com/i2508441/6720482289c10f32.png)
b.button被点击了;
![](https://img.haomeiwen.com/i2508441/4c04e5af4fabe90a.png)
c.移动下划线view (viewcontroller里的scrollview发生偏移时调用,button被点击了也会调用scrollview的代理方法,然后再调用下面的方法移动指示view)
![](https://img.haomeiwen.com/i2508441/ba7e1f10f970c906.png)
d.选中对应按钮(viewcontroller里的scrollview发生偏移停止减速之后调用,改变选中的button)
![](https://img.haomeiwen.com/i2508441/273e77cd07da0b24.png)
3.在主控制器里面viewcontroller
a.属性
![](https://img.haomeiwen.com/i2508441/d5658147839b472e.png)
b.1.初始化pageTitleView并设置代理
![](https://img.haomeiwen.com/i2508441/0337c0f4ddc567e3.png)
c..初始化scrollview并设置代理
![](https://img.haomeiwen.com/i2508441/abbb58856c94878f.png)
d.代理方法,点击button会走11和22,滑动scrollview会走22和33;
![](https://img.haomeiwen.com/i2508441/7474ec196e4b2e98.png)
4.getter方法
![](https://img.haomeiwen.com/i2508441/b9fc3942c440acde.png)
网友评论