美文网首页
【转】适配iOS11 - UITableview UIColle

【转】适配iOS11 - UITableview UIColle

作者: 紫荆逸 | 来源:发表于2017-09-28 18:00 被阅读110次

    文章来源:http://www.cocoachina.com/cms/wap.php?action=article&id=20101

    升级Xcode 9 + iOS 11后,发现原本没问题的collectionView和tableView像是中了风一样,头部刷新UI出现了错乱。

    查阅发现 iOS11弃用了automaticallyAdjustsScrollViewInsets属性,新增contentInsetAdjustmentBehavior来替代它

    关于 contentInsetAdjustmentBehavior

    @available(iOS 11.0, *)
    public enum UIScrollViewContentInsetAdjustmentBehavior : Int {
    case automatic // Similar to .scrollableAxes, but will also adjust the top & bottom contentInset when the scroll view is owned by a view controller with automaticallyAdjustsScrollViewContentInset = YES inside a navigation controller, regardless of whether the scroll view is scrollable case scrollableAxes // Edges for scrollable axes are adjusted (i.e., contentSize.width/height > frame.size.width/height or alwaysBounceHorizontal/Vertical = YES)
    case never // contentInset is not adjusted
    case always // contentInset is always adjusted by the scroll view's safeAreaInsets
    }

    UIScrollViewContentInsetAdjustmentBehavior 是一个枚举类型,值有以下几种:

    -automatic 和scrollableAxes一样,scrollView会自动计算和适应顶部和底部的内边距并且在scrollView 不可滚动时,也会设置内边距.

    -scrollableAxes 自动计算内边距.
    -never不计算内边距
    -always 根据safeAreaInsets 计算内边距

    很显然,我们这里要设置为 never

    开始适配

    OC 中

            //声明tableView的位置 添加下面代码
            if (@available(iOS 11.0, *)) {
                _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
                _tableView.contentInset = UIEdgeInsetsMake(64, 0, 49, 0);
                _tableView.scrollIndicatorInsets = _tableView.contentInset;
            }
    
    

    swift 中

            //声明tableView的位置 添加下面代码
            if #available(iOS 11.0, *) {
                tableView.contentInsetAdjustmentBehavior = .never
                tableView.contentInset = UIEdgeInsetsMake(64, 0, 49, 0)
                tableView.scrollIndicatorInsets = tableView.contentInset
            }
    

    终于又回归原来的效果啦

    相关文章

      网友评论

          本文标题:【转】适配iOS11 - UITableview UIColle

          本文链接:https://www.haomeiwen.com/subject/wajvextx.html