【Swift】UILabel 设置内边距
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/21167226/resizing-a-uilabel-to-accomodate-insets 改的,注意这篇文章 http://stackoverflow.com/questions/3476646/uilabel-text-margin 有问题。
本文转自博客园农民伯伯的博客,原文链接:【Swift】UILabel 设置内边距,如需转载请自行联系原博主。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
【Swift 2.0】实现简单弹幕功能
let DANMAKU_SPEED: CGFloat = 150 // 弹幕每秒移动速度 let DANMAKU_SPACE_TIME: NSTimeInterval = 1 // 弹幕之间的时间间隔 let DANMAKU_MAX_ROW = 3 // 最多同时弹幕行数 let danmakuFont = UIFont.systemFontOfSize(18) // 弹幕字体大小 var rowArray = Array<Array<Danmaku>>(count: 3, repeatedValue: Array<Danmaku>()) var danmakuQueue = NSOperationQueue() // 队列 class Danmaku : NSObject{ var msg: Msg var view: UILabel? var size = CGSize(width: 0, height: 0) var row = 0 var startTime: NSDate? var duration: NSTimeInterval = 0 ...
-
下一篇
【iOS】屏幕适配之NSLayoutConstraint
importFoundation classNSLayoutConstraintEx:NSLayoutConstraint{ @IBInspectable varipad:CGFloat= 0{ didSet{ ifDeviceUtils.isIPad(){ constant=ipad } } } @IBInspectable variphone4:CGFloat= 0{ didSet{ // 640x960 ifDeviceUtils.isIphone()&&DeviceUtils.getScreenSize().height== 960.0{ constant=self.iphone4 } } } @IBInspectable variphone5:CGFloat= 0{ didSet{ // 640x1136 ifDeviceUtils.isIphone()&&DeviceUtils.getScreenSize().height== 1136.0{ constant=self.iphone5 } } } @IBInspectable va...
相关文章
文章评论
共有0条评论来说两句吧...