博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Swift】UILabel 设置内边距
阅读量:6984 次
发布时间:2019-06-27

本文共 1623 字,大约阅读时间需要 5 分钟。

 

前言

  对应一个曾经开发 Android 的人来说,没有这些基础属性简直令人发指,还是表喷这个,认真写代码 - - #

 

声明

  欢迎转载,但请保留文章原始出处:)
  博客园:http://www.cnblogs.com
  农民伯伯: http://over140.cnblogs.com

 

正文

class UILabelPadding : UILabel {        private var padding = UIEdgeInsetsZero        @IBInspectable    var paddingLeft: CGFloat {        get { return padding.left }        set { padding.left = newValue }    }        @IBInspectable    var paddingRight: CGFloat {        get { return padding.right }        set { padding.right = newValue }    }        @IBInspectable    var paddingTop: CGFloat {        get { return padding.top }        set { padding.top = newValue }    }        @IBInspectable    var paddingBottom: CGFloat {        get { return padding.bottom }        set { padding.bottom = newValue }    }        override func drawTextInRect(rect: CGRect) {        super.drawTextInRect(UIEdgeInsetsInsetRect(rect, padding))    }    override func textRectForBounds(bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {        let insets = self.padding        var rect = super.textRectForBounds(UIEdgeInsetsInsetRect(bounds, insets), limitedToNumberOfLines: numberOfLines)        rect.origin.x    -= insets.left        rect.origin.y    -= insets.top        rect.size.width  += (insets.left + insets.right)        rect.size.height += (insets.top + insets.bottom)        return rect    }}

 

  代码说明:

    通过 IBInspectable 可以支持 UILable 在 Storyboard 里面就能指定内边距,非常方便:

    

 

  参考

    参考这篇文章  改的,注意这篇文章 http://stackoverflow.com/questions/3476646/uilabel-text-margin 有问题。

 

结束

  抱歉命名用的 Android 的,然后超爱 IBInspectable 这个东西。

转载于:https://www.cnblogs.com/over140/p/4837652.html

你可能感兴趣的文章
用ASP.NET缓存提高站点性能【转载】
查看>>
两副图片的差异比较的C#实现
查看>>
实体处理模块IEntityModule
查看>>
JSP上传组件
查看>>
Linux驱动 读写文件【转】
查看>>
[JS] HTML QQ分享界面js代码
查看>>
Strom的trident单词计数代码
查看>>
二叉树的构造
查看>>
代码段:ASCII to Unicode
查看>>
内存管理单元编程实例【转】
查看>>
Viewstate
查看>>
ASP.NET MVC之Unobtrusive Ajax(五)
查看>>
[LeetCode] Dungeon Game 地牢游戏
查看>>
实现一个 能在O(1)时间复杂度 完成 Push、Pop、Min操作的 栈
查看>>
Java 序列化的高级认识
查看>>
3、ASP.NET MVC入门到精通——Entity Framework增删改查
查看>>
C/C++中手动获取调用堆栈【转】
查看>>
Linux中断(interrupt)子系统之五:软件中断(softIRQ)【转】
查看>>
使用T4模板生成POCO类
查看>>
图像的马赛克艺术化
查看>>