zoukankan      html  css  js  c++  java
  • iOS-KVO动态监听UIScrollView的contentSize(UITableView、UICollectionView)

    逻辑有时候需要在加载完 UITableView、UICollectionView的内容后,确定其高度或宽度来改变它的Frame,这时候可以巧妙地使用KVO添加对其 contentSize 的监听进行处理,以 UICollectionView 为例,逻辑需要在 UICollectionView 加载完后,拿到内容大小进行处理其Frame,在添加 UICollectionView 的 view 初始化方法中,添加监听即可;

    添加监听-监听方法处理-移除监听;

    添加监听-监听方法处理-移除监听;

    添加监听-监听方法处理-移除监听;

    添加监听

    [self.collectionView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];

    监听方法

    -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context
    {
        if(object == self.collectionView){
            if ([keyPath isEqualToString:@"contentSize"]) {
                if(_collectionView.contentSize.height == _contentHeight) return;
                _contentHeight = _collectionView.contentSize.height;
                ///对其拿到的高或者宽进行处理
            }
        }
        
    }

    移除监听

    - (void)dealloc
    {
        [self.collectionView removeObserver:self forKeyPath:@"contentSize"];
    }
  • 相关阅读:
    牛客练习赛27 水图(思维+暴搜)
    差分
    矩阵化一维
    倍增法 求公共祖先
    vector 牛逼 +lower_bound+ upper_bound
    cmp和sort
    字符串的比较
    s 贪心
    太鼓达人 (有位运算的作用,但可能理解错了哈哈)
    kao shi di er ti(还没有订正)
  • 原文地址:https://www.cnblogs.com/wangkejia/p/15109387.html
Copyright © 2011-2022 走看看