Swift UILable 设置内边距实例代码

前言

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

 正文

代码实现:

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 里面就能指定内边距,非常方便:

以上就是Swift UILable 设置内边距实例代码,开发IOS应用需要用的可以参考下。

(0)

相关推荐

  • 在一个项目中同时使用Swift和Objective-C代码混合编程的方法

    Swift 与 Objective-C 的兼容能力使你可以在同一个工程中同时使用两种语言.你可以用这种叫做 mix and match 的特性来开发基于混合语言的应用,可以用 Swfit 的最新特性实现应用的一部分功能,并无缝地并入已有的 Objective-C 的代码中. Mix and Match 概述 Objective-C 和 Swift 文件可以在一个工程中并存,不管这个工程原本是基于 Objective-C 还是 Swift.你可以直接往现有工程中简单地添加另一种语言的源文件.这种自

  • 在Swift中使用JSONModel 实例代码

    前言 首先所有的Model还是使用oc来写--看到这一句是不是想关网页了- - #,在swift里面直接写一直报错所以就将就用oc来写了,这里主要是分享一下搭配Alamofire使用的经验. 正文 这里不讨论JSONModel和Alamofire这两个项目,直接上代码,BaseModel.h #import "JSONModel.h" @interface BaseModel : JSONModel -(instancetype)initWithDictionary:(NSDictio

  • Swift中动态调用实例方法介绍

    在 Swift 中有一类很有意思的写法,可以让我们不直接使用实例来调用这个实例上的方法,而是通过类型取出这个类型的某个实例方法的签名,然后再通过传递实例来拿到实际需要调用的方法.比如我们有这样的定义: 复制代码 代码如下: class MyClass {     func method(number: Int) -> Int {         return number + 1     } } 想要调用 method 方法的话,最普通的使用方式是生成MyClass的实例,然后用.method来

  • Swift的74个常用内置函数介绍

    Swift包含了74个内置函数,但在 The Swift Programming Langage 一书中只介绍了其中的7个,其它的都没有在文档中体现. 这篇文章列举出了所有的Swift库函数.文中所谓的 内置函数 是指无需引入任何模块(比如说Fundation等)即可以直接使用的函数. 下面先来看看7个在文档中提到的库函数: 下面列出一些很实用,但未在文档中体现的库函数: 复制代码 代码如下: //断言,参数如果为`true`则继续,否则抛出异常 //assert mentioned on pa

  • Swift 2.1 为 UIView 添加点击事件和点击效果

    前言 UIView 不像 UIButton 加了点击事件就会有点击效果,体验要差不少,这里分别通过自定义和扩展来实现类似 UIButton 的效果. 正文 一.为 UIView 添加点击事件 extension UIView { func addOnClickListener(target: AnyObject, action: Selector) { let gr = UITapGestureRecognizer(target: target, action: action) gr.numbe

  • Swift 共享文件操作小结(iOS 8 +)

    前言 适用于 iOS 8 + 本地共享文件列表 正文 一.准备 1.1 默认 App 的文件共享是关闭的,需要在 plist 中设置启用: Application supports iTunes file sharing 设置为 YES 启用后把设备连接到 iTunes 上,在 iTunes 应用里的文件共享就能看到你的 App 了(如果看不见需要断开重新拔插一下数据线),可以拷贝一些视频进去,便于测试. 1.2 导入库 Photos.framework AVKit.framework 用于播放

  • Swift流程控制之循环语句和判断语句详解

    Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代码的另一个点上. 除了C语言传统的for-condition-increment循环,Swift加入了for-in循环,能更加容易的遍历arrays, dictionaries, ranges, strings等其他序列类型. Swift的switch语句也比C语言的要强大很多. Swift中swi

  • Swift教程之枚举类型详解

    枚举定义了一个常用的具有相关性的一组数据,并在你的代码中以一个安全的方式使用它们. 如果你熟悉C语言,你就会知道,C语言中的枚举指定相关名称为一组整数值.在Swift中枚举更为灵活,不必为枚举的每个成员提供一个值.如果一个值(被称为"原始"的值)被提供给每个枚举成员,则该值可以是一个字符串,一个字符,或者任何整数或浮点类型的值. 另外,枚举成员可以指定任何类型,每个成员都可以存储的不同的相关值,就像其他语言中使用集合或变体.你还可以定义一组通用的相关成员为一个枚举,每一种都有不同的一组

  • Swift调用Objective-C编写的API实例

    互用性是让 Swift 和 Objective-C 相接合的一种特性,使你能够在一种语言编写的文件中使用另一种语言.当你准备开始把 Swift 融入到你的开发流程中时,你应该懂得如何利用互用性来重新定义并提高你写 Cocoa 应用的方案. 互用性很重要的一点就是允许你在写 Swift 代码时使用 Objective-C 的 API 接口.当你导入一个 Objective-C 框架后,你可以使用原生的 Swift 语法实例化它的 Class 并且与之交互. 初始化 为了使用 Swift 实例化 O

  • Swift教程之字符串和字符详解

    一个字符串String就是一个字符序列,像"hello,world","albatross"这样的.Swift中的字符串是用String关键词来定义的,同时它也是一些字符的集合,用Character定义. Swift的String和Character类型为代码提供了一个快速的,兼容Unicode的字符解决方案.String类型的初始化和使用都是可读的,并且和C中的strings类似.同时String也可以通过使用+运算符来组合,使用字符串就像使用Swift中的其他基

随机推荐