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

本文共 1572 字,大约阅读时间需要 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 这个东西。

你可能感兴趣的文章
【C#/WPF】UI控件的拖拽/拉伸
查看>>
javaScript实现归并排序
查看>>
kickstart文件详解
查看>>
lua——string之string.gsub
查看>>
JS中的跨域问题
查看>>
MySQL 8 新特性之持久化全局变量的修改
查看>>
Docker Tag
查看>>
ZOJ 2459 Pyramids
查看>>
activemq自己配置安装过程
查看>>
Java Practices -> Home
查看>>
(收藏)Andriod中文翻译组
查看>>
列出Database所有Key列或者获取表主键名称
查看>>
类依赖项的不透明性和透明性
查看>>
更改 input type 的值
查看>>
双重OAuth 2.0架构
查看>>
Codeforces 452A Eevee
查看>>
推荐的优秀博客--多关注,多看看
查看>>
深入理解盒模型
查看>>
java中已经排序的列表中插入新值
查看>>
整理一些开源项目
查看>>