美文网首页
iOS UIViewContentMode详解

iOS UIViewContentMode详解

作者: 不做待宰的猴子 | 来源:发表于2017-09-05 10:36 被阅读0次
    contentMode.png

    根据定义可以看出 UIViewContentMode 是UIView的属性,所以这里分别对UIImageView、UIView、UILabel、UIButton设置contentMode属性来查看相应效果。

    通过测试可以看到,contentMode属性的设置,在视觉上只对UIImageView起作用,对UIView、UILabel、UIButton都不起作用。
    对于UIView,因为它的子视图都已经设置了自己的frame,位置是固定的,所以这里contentMode不起作用。
    对于UILabel、UIButton,并没有像预期的一样,通过设置不同的contentMode,而改变UILabel、UIButton中文本或图片内容的填充样式。
    所以,对于contentMode属性的主要探索就放在了UIImageView上。
    先来看看测试过程中得到的所有效果图:


    屏幕快照 2017-09-04 下午6.04.13.png
    4492C61D-6A21-4AD3-9DBA-47891851F985.jpeg
    屏幕快照 2017-09-04 下午6.06.27.png
    屏幕快照 2017-09-04 下午6.07.18.png
    屏幕快照 2017-09-04 下午6.08.01.png

    typedef NS_ENUM(NSInteger, UIViewContentMode) {
    //默认样式 图片充满整个轮廓,不按比例放大或缩小,图片可能会变形
    UIViewContentModeScaleToFill,
    //图片按比例放大或缩小,直到图片和轮廓中相差比率较小的边长度达到一致,图片可能会拉伸,但不会变形
    UIViewContentModeScaleAspectFit,
    //图片按比例放大或缩小,直到图片和轮廓中相差比率较大的边长度达到一致,图片可能会拉伸,但不会变形
    UIViewContentModeScaleAspectFill,
    //调用setNeedsDisplay方法时,会重新渲染图片,以下操作,图片均不会被拉伸,不变形
    UIViewContentModeRedraw,
    UIViewContentModeCenter,
    UIViewContentModeTop,
    UIViewContentModeBottom,
    UIViewContentModeLeft,
    UIViewContentModeRight,
    UIViewContentModeTopLeft,
    UIViewContentModeTopRight,
    UIViewContentModeBottomLeft,
    UIViewContentModeBottomRight,
    };
    欢迎各路大神不吝指教、纠正~

    相关文章

      网友评论

          本文标题:iOS UIViewContentMode详解

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