UI技巧 批量修改控件属性
2015-10-18 21:28
393 查看
前几天一个群友提出了一个问题,就是他已经写好了一个app,然后系统的字体是18号,他希望能调小这个字体,但却又不想再回到代码中修改。
正好在几天前,因为一点事情,重新看了一下分类的概念,然后就决定用类别的方式来解决这个问题。
类别的作用
1.可以使本来需要在.h中声明的方法放到.m文件中声明,使方法变为私有
2.可以扩展或覆盖一个类的功能,包括系统类,维护了代码原本的结构不受影响。
3.可以分散代码到不同的文件之中,比如系统类库里有一个NSObject的类别,并没有卸载NSObject类里,而是写到另外一个类里,主要是因为这个类别扩展的功能和那个类相关,便于将来查看。
这里我们可以利用类别作用的第二点,通过扩展对应的类的功能,来实现属性的修改。
对于群友提出来的问题,他希望修改所有UILable中字体的大小。
思路是:所以通过给UILable写分类来重写UILabel在加载中必须会调用到的方法,对font属性进行提前设置,
- (void)drawTextInRect:(CGRect)rect;
这个方法是绘制lable的文本。
重写这个方法为
就可以进行设置了。
总结:
1.理解类别的用法,就可以通过需求对系统类或者其他的类进行扩展。
2.通过重写一些在类实现中自身会调用的方法来修改属性。
3.对于控件上的每一个可以显示的元素,都有相应的绘制方法,例如上面的UIlabel的文字绘制,UIView的背景绘制,UIImageView的图片绘制等等。
正好在几天前,因为一点事情,重新看了一下分类的概念,然后就决定用类别的方式来解决这个问题。
类别的作用
1.可以使本来需要在.h中声明的方法放到.m文件中声明,使方法变为私有
2.可以扩展或覆盖一个类的功能,包括系统类,维护了代码原本的结构不受影响。
3.可以分散代码到不同的文件之中,比如系统类库里有一个NSObject的类别,并没有卸载NSObject类里,而是写到另外一个类里,主要是因为这个类别扩展的功能和那个类相关,便于将来查看。
这里我们可以利用类别作用的第二点,通过扩展对应的类的功能,来实现属性的修改。
对于群友提出来的问题,他希望修改所有UILable中字体的大小。
思路是:所以通过给UILable写分类来重写UILabel在加载中必须会调用到的方法,对font属性进行提前设置,
- (void)drawTextInRect:(CGRect)rect;
这个方法是绘制lable的文本。
重写这个方法为
就可以进行设置了。
总结:
1.理解类别的用法,就可以通过需求对系统类或者其他的类进行扩展。
2.通过重写一些在类实现中自身会调用的方法来修改属性。
3.对于控件上的每一个可以显示的元素,都有相应的绘制方法,例如上面的UIlabel的文字绘制,UIView的背景绘制,UIImageView的图片绘制等等。
相关文章推荐
- TCO14 2C L2: CliqueGraph,graph theory, clique
- Hive ERROR: Out of memory due to hash maps used in map-side aggregation
- iOS UIView 快速修改 frame,
- Android 应用的 UI 设计师应当如何如何定义字体的 sp 值
- easyUI panel组件
- Chapter 7 Quicksort
- IOS UI控件-UIScrollView
- [BZOJ3043] IncDec Sequence
- UIImagePickerController详解
- require头域
- UVA11235 - Frequent values
- UI初学者必须慎重对待的五个误区
- 一个UI设计小菜鸟的自行车旅途
- CALayer与UIView的关系
- UIAlertView显示后自动消失
- Android实用的开源框架(UI框架)
- 一步一步学Qt(Qt Quick)/qml 开发第五篇(第一个可视的应用)
- hdu5504 GT and sequence
- 编程技巧:使用整数同时进行多个true|false判断
- Ios学习之uiswitch的使用