KVO实例浅析
来源:互联网 发布:外汇账户数据采集规范 编辑:程序博客网 时间:2024/06/04 19:36
@最近遇到个问题,在处理项目中一个评论界面时,因为直接用的是UIWebView展示评论列表,结果取到的页面上下都有一段CGSize为(320,65)的乱七八糟的广告,十分碍眼.头部广告因很方便的在头部坐标贴上自己的logo解决了,但是尾部的,因为每个页面的评论长短不一,坐标也就不一样,这样就不能给定死坐标去贴logo,思前想后,通过KVO很好的解决了这个问题.
@KVO概述:
KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。
简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。
@使用步骤如下:
1. 注册,指定被观察者的属性,
2. 实现回调方法
3. 触发回调方法
4. 移除观察
@代码实例:
-(void)viewDidLoad{ // KVO,作为一个观察者,只要属性"contentSize"发生变化,回调方法里面就会通知 [_webView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:NULL];}// 回调方法- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ if(object == _webView.scrollView && [keyPath isEqualToString:@"contentSize"]) { // 得到最大的Y坐标 CGSize size = _webView.scrollView.contentSize; if (size.height > 568.0) { // 遮挡广告 _hideBottomImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, size.height-67, ScreenWidth, 67)]; _hideBottomImage.image = [UIImage imageNamed:@"banner"]; [_webView.scrollView addSubview:_hideBottomImage]; [_hideBottomImage release]; } } else { // 调用父类的方法 [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; }}- (void)dealloc{//---->在ARC环境下也能调用dealloc方法,只是不需要写[super dealloc] // 移除KVO,否则会引起资源泄露 [_webView.scrollView removeObserver:self forKeyPath:@"contentSize"]; [super dealloc]; }上面是针对contentSize属性,其他属性依此类推
0 0
- KVO实例浅析
- kvo浅析与实例
- KVO浅析与实例
- KVO浅析与实例
- KVO浅析与实例
- kvo浅析与实例
- kvo浅析与实例
- KVO模式浅析
- 浅析 KVO 内部实现
- KVO原理浅析
- KVO、KVC、NSNotificationCenter实例
- iOS KVO 实例
- KVO的使用实例
- KVO简单实例与细节
- object-c编程tips-KVO,KVC浅析
- object-c编程tips-KVO,KVC浅析
- 浅析键值观察(KVO)的使用技巧
- ios中的kvo模式使用实例
- STM32 keil printf的使用
- tesseract训练字符中遇到的问题总结
- SAP 货币转换中的转换因子
- VS2010支持的源代码格式
- 大白话解析模拟退火算法
- KVO实例浅析
- 在1970-9999年之间输入一个日期实现输出星期几
- QT_PC实战常见问题_应用发布相关
- java文件copy操作,IO,
- Linux makefile 教程 非常详细,且易懂
- 浅谈HTML/XHTML/HTML5之间的渐变
- Windows/Linux/UNIX/Mac应用程序创建UPC/EAN/JAN 条码
- 关于两个update语句互相死锁的显现,加深我们对锁的了解
- Rational Rose 2003 逆向工程转换C++源代码成UML类图 (使用篇)