美文网首页
adjustContentInset属性的计算方式

adjustContentInset属性的计算方式

作者: August24 | 来源:发表于2018-03-06 13:50 被阅读19次

    scrollView在iOS11新增的两个属性:adjustContentInset 和 contentInsetAdjustmentBehavior。

    /* When contentInsetAdjustmentBehavior allows, UIScrollView may incorporate
     its safeAreaInsets into the adjustedContentInset.
     */
    @property(nonatomic, readonly) UIEdgeInsets adjustedContentInset API_AVAILABLE(ios(11.0),tvos(11.0));
    

    adjustContentInset表示contentView.frame.origin偏移了scrollview.frame.origin多少;是系统计算得来的,计算方式由contentInsetAdjustmentBehavior决定。有以下几种计算方式:

    1. UIScrollViewContentInsetAdjustmentAutomatic:如果scrollview在一个automaticallyAdjustsScrollViewContentInset = YEScontroller上,并且这个Controller包含在一个navigation controller中,这种情况下会设置在top & bottomadjustedContentInset = safeAreaInset + contentInset不管是否滚动。其他情况下与UIScrollViewContentInsetAdjustmentScrollableAxes相同

    2. UIScrollViewContentInsetAdjustmentScrollableAxes: 在可滚动方向上adjustedContentInset = safeAreaInset + contentInset,在不可滚动方向上adjustedContentInset = contentInset;依赖于scrollEnabledalwaysBounceHorizontal / vertical = YESscrollEnabled默认为yes,所以大多数情况下,计算方式还是adjustedContentInset = safeAreaInset + contentInset

    3. UIScrollViewContentInsetAdjustmentNever: adjustedContentInset = contentInset

    4. UIScrollViewContentInsetAdjustmentAlways: adjustedContentInset = safeAreaInset + contentInset

    contentInsetAdjustmentBehavior设置为UIScrollViewContentInsetAdjustmentNever的时候,adjustContentInset值不受SafeAreaInset值的影响。

    相关文章

      网友评论

          本文标题:adjustContentInset属性的计算方式

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