解决如何在category中removeObserver掉KVO_技术成长笔记_新浪博客

最近项目中需要使用封装TopShowMessage这个控件(类似sina weibo更新提示),这4中提示方式。这种类似是 解决如何在category中removeObserver掉KVO针对UInavgationBar来提示显示,所有对UIViewController+category 封装还是很合适的。

  1)问题:由于把showMessageView直接addsubview在self.view上,所以出现一个滑动跟随的情况,这个还是最好在category里面判断好。如果是scrollview做KVO监听但是在哪里removeObserver呢?,也不可能谁用谁去remove 这也不叫封装了。

 
解决办法就是:把要封装的单个UIview在category里面 搞个@interface ShowMessageView   然后在这里showView隐藏remove时一并removeobserver就ok(不然在scrollview上一直调用 性能问题歘来)。

- (void)layoutSubviews{

    if ([self.superview isKindOfClass:[UIScrollView class]]) {

        UIScrollView *scro = (UIScrollView *)self.superview;

        [scro addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];

    }}

    添加对supview的contenoffset监听。


总结:category中kvo问题 可以用变相的办法解决,毕竟它属于封装,用最简单,最明白的方式提供给别人使用!

- (void)showTopMessage:(NSString *)message withType:(ShowType)type;




This link米农码农blog搭建中...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值