美文网首页Swift
iOS UILabel设置内边距

iOS UILabel设置内边距

作者: izsm | 来源:发表于2018-08-25 23:36 被阅读91次

有时候我们希望可以设置UILabel的内边距,为了解决这个问题,设计MarginLabel如下,继承自UILabel:

class MarginLabel: UILabel {
    
    var contentInset: UIEdgeInsets = .zero
    
    override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {
        var rect: CGRect = super.textRect(forBounds: UIEdgeInsetsInsetRect(bounds, contentInset), limitedToNumberOfLines: numberOfLines)
        //根据edgeInsets,修改绘制文字的bounds
        rect.origin.x -= contentInset.left;
        rect.origin.y -= contentInset.top;
        rect.size.width += contentInset.left + contentInset.right;
        rect.size.height += contentInset.top + contentInset.bottom;
        return rect
    }
    
    override func drawText(in rect: CGRect) {
        super.drawText(in: UIEdgeInsetsInsetRect(rect, contentInset))
    }
}

实例化一个MarginLabel:

private lazy var marginLabel: MarginLabel = {
        MarginLabel().chain
            .text("测试UILabel内边距测试UILabel内边距测试UILabel内边距测试UILabel内边距测试UILabel内边距测试UILabel内边距")
            .backgroundColor(UIColor.gray)
            .textColor(UIColor.white)
            .numberOfLines(0)
            .build
}()

不设置内边距的时候:


AF6DA567-20B3-47FE-BE0C-406B144BDBD5.png

设置内边距:

marginLabel.contentInset = UIEdgeInsetsMake(10, 10, 10, 10)

效果:


CD59CDD8-EA90-4049-9210-B9534A9FDB4C.png

相关文章

  • iOS UILabel设置内边距

    有时候我们希望可以设置UILabel的内边距,为了解决这个问题,设计MarginLabel如下,继承自UILabe...

  • UILabel设置内边距

    CustomLabel.h #import @interface CustomLabel : UILabel @p...

  • iOS-设置UILabel的内边距

    问题说明 默认Label的显示效果如下 很多情况下,需要如下有内边距的效果(注意第一行与最后一行文字与label的...

  • uilabel 内边距

    重写一个方法 - (void)drawTextInRect:(CGRect)rect { UIEdgeInsets...

  • iOS 如何制作内边距UILabel

    前言: 经常在某 App 上看到文字 Label 带有圆角边框之类的, 如果直接设置 Label 的layer 圆...

  • iOS给UILabel增加内边距

    UILabel默认不带内边距,调整内边距步骤: 1.制定一个空白区:UIEdgeInsets。 2. 重写draw...

  • iOS UILabel增加内边距属性

    在某些场景我们想让Label像UIButton这种控件一样,可以设置内容边距,来使整体布局可拓展性增强。刚好项目中...

  • UILabel内边边距

    在开发过程中,简单的使用UILabel属性,不能够达到我们显示一些特殊的要求。UILabel要显示边框时,不像UI...

  • uilabel改变内边距

    .h 直接代码 .m

  • 前端Day11

    CSS内边距 内边距是设置盒子与子盒子之间的距离。 pading: 10px; 设置上下左右都是10px的内边距。...

网友评论

    本文标题:iOS UILabel设置内边距

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