您的位置:首页 > 移动开发 > IOS开发

iOS 视图封装及适配

2015-07-30 10:31 274 查看
iOS 视图封装:

当同一个视图被多个页面加载,把该视图里需要用到的所有子视图当做该视图的属性,在实现方法里面,把在多个页面里要用到该视图里的公共部分添加到该视图上,该视图作为基视图抽离出来而被其他视图继承。最常用的就是TitleView 和 BottomBarView.

举例说明, 当在A页面的一个TitleView上面显示一款产品的Logo,名字,改名图标,产品详细信息按键等控件时,在B页面的TitleView 上面只需要显示产品名字和Logo,以及另外一个功能分享时。我们可以这样去封装这样的一个TitleView对象:

封装基类:把TitleView中所有都需要显示的部分,都当做TitleView的属性,封装在BaseTitleView.h文件中。即把 产品Logo、名字、改名图标、改名按键、详细按键、分享按键都按属性值的方式,封装在.h文件中,并提供所有视图或控件的添加接口。在BaseTitleView.m文件当中,实现各个接口函数(也可只实现该视图中需要的部分),但只添加公共部分的视图,即产品Logo、名字、titleView的背景。
封装子类:在A页面视图中,使用ATitleView,该视图继承自BaseTitleView,在ATitleView.m文件中,调用父类方法,同时添加属于A页面需要的部分,即 接着实现并添加 改名图标、产品详细说明。 在B页面视图中,做与A同样的操作,建BTitleView:BaseTitleView,然后实现并添加分享功能。当然对这些按键有点击事件的视图,可以把他的响应事件以代理或者block的情况抛出。
注意:基类的每个属性,子类都是可以直接通过self.来直接访问到的,当在子类中发现某个来自基类的属性需要调整,直接在子类中重写该属性就好了。如果直接改动基类的话,可能会影响到其他的子类。

iOS 视图适配:
在不同尺寸的手机上,对同一个视图的布局也有可能不一样。所以就涉及到对每个视图的在不同尺寸手机上的适配问题。因此,我们在做适配的时候,可以把适配接口也写进基类视图里面去,预留接口常为:- (void)relayoutFrameOfSubViews;而该接口方法肯定是在另外一个接口方法里面被调用了。在该方法里面,我们常用采用if(iPhone4){}else
if(iPhone5){}else if (iPhone 6)的形式去适配。当需要调整某个部分的视图适配的时候,就直接进到该视图或者其父视图里面进行调整。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: