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)的形式去适配。当需要调整某个部分的视图适配的时候,就直接进到该视图或者其父视图里面进行调整。
当同一个视图被多个页面加载,把该视图里需要用到的所有子视图当做该视图的属性,在实现方法里面,把在多个页面里要用到该视图里的公共部分添加到该视图上,该视图作为基视图抽离出来而被其他视图继承。最常用的就是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)的形式去适配。当需要调整某个部分的视图适配的时候,就直接进到该视图或者其父视图里面进行调整。
相关文章推荐
- iOS 工程常用的几个第三方框架
- iOS图片缓存开源库SDWebImage的使用
- nagios利用NRPE监控CPU、负载、磁盘IO
- iOS的内存管理
- HDOJ 1017 A Mathematical Curiosity
- ios打印日志的类,方法,及行号
- iOS8 本地通知基本用法
- iOS文字排版(CoreText)
- iOS开发的一些奇巧淫技
- iOS 文件夹路径
- iOS 之美:iOS Delegate 使用五步曲
- iOS开发常用的几大工具
- 3D坦克大战游戏iOS源码
- 3D坦克大战游戏iOS源码
- 打地鼠游戏iOS源码项目
- 打地鼠游戏iOS源码项目
- iOS毛玻璃效果
- iOS中使用的tableview为group形式时如何设置不同sections的间距
- ios合并模拟器和实机的.a库文件
- IOS基础学习日志(七)利用dispatch_once创建单例及使用