利用KVC模式更改UISearchBar的图片和placeholder字体颜色
2016-09-25 10:44
771 查看
在实际开发中,我们经常需要重新定义UI控件,要修改对象属性,可以借助KVC模式。下面以更改搜索栏图片和字体颜色为例,实现代码如下:
KVC设计模式是什么呢?
Key-value coding,是一种使用字符串标识符,间接访问对象属性的机制,而不是直接调用存取方法(即getter和setter方法)。通常我们使用valueForKey来替代getter方法,setValue:forKey来代替setter方法。使用KVC间接修改对象属性时,系统会自动判断对象属性的类型,并完成转换。KVC按照键值路径取值时,如果对象不包含指定的键值,会自动进入对象内部,查找对象属性。
注意:valueForKeyPath是区分大小写的。
当通过KVC调用对象,比如[self valueForKey:@"someKey"]时,程序会自动试图通过几种不同的方式解析这个调用。步骤如下:
1)查找对象是否带有someKey这个方法;如果没找到,执行第2)
2)查找对象是否带有someKey这个实例变量iVar;如果没找到,执行第3)
3)程序试图调用-(id)valueForUndefinedKey:这个方法,若这个方法没有被实现,程序会抛出NSUndefinedKeyException异常错误
KVC设计模式是什么呢?
Key-value coding,是一种使用字符串标识符,间接访问对象属性的机制,而不是直接调用存取方法(即getter和setter方法)。通常我们使用valueForKey来替代getter方法,setValue:forKey来代替setter方法。使用KVC间接修改对象属性时,系统会自动判断对象属性的类型,并完成转换。KVC按照键值路径取值时,如果对象不包含指定的键值,会自动进入对象内部,查找对象属性。
注意:valueForKeyPath是区分大小写的。
当通过KVC调用对象,比如[self valueForKey:@"someKey"]时,程序会自动试图通过几种不同的方式解析这个调用。步骤如下:
1)查找对象是否带有someKey这个方法;如果没找到,执行第2)
2)查找对象是否带有someKey这个实例变量iVar;如果没找到,执行第3)
3)程序试图调用-(id)valueForUndefinedKey:这个方法,若这个方法没有被实现,程序会抛出NSUndefinedKeyException异常错误
相关文章推荐
- IOS 修改UISearchBar 输入框的颜色 placeholder字体的颜色
- 如何更改UISearchBar取消的字体颜色
- 更改UISearchBar 的背景色、取消按钮颜色
- 修改UISearchBar输入框字体颜色
- 85.如何更改iOS上的UISearchBar组件的内部背景UITextField颜色 修改UISearchBar删除按钮ClearButton
- 更改UISearchBar button属性
- 修改UISearchBar放大镜图片(_searchBar._searchField.leftView)
- U盘加背景图片,改图标,修改字体颜色,把文件夹变彩色,更改文件夹背景
- 修改UISearchBar背景颜色
- 修改UISearchBar的背景颜色
- iOS更改NavigationBar Title颜色字体
- iOS开发 -- 更改placeholder的字体颜色、大小
- 利用Runtime修改UIdatePicker的字体颜色
- 修改UISearchBar背景颜色
- Objective-C更改placeholder字体颜色
- iOS 更改textField里placeholder的字体和颜色
- UISearchbar设置placeholder字体颜色大小
- 修改UISearchBar背景颜色
- 修改UISearchBar背景颜色
- iOS 修改SearchBar的Textfiled的Cursor游标颜色和字体样式和大小;Disable输入框