Swift 一,UILabel详解
前言从今天开始,我也要开始认真学习Swift,以前一直在说学习它,但是都被自己找各种理由把时间浪费了。想屎的节奏。以后开始在此记录也是鞭策自己。Swift基本的语法知识我不在这写了,直接开始UI部分,因为网上已经有好多的Swift的基础知识部分了,人家说的都很好,我也就不献丑了。 正文首先我们先创建一个简单的Label: var testLabel = UILabel(frame: CGRectMake(50,100,150,50))
testLabel.text = "这是我的一个label"
self.view.addSubview(testLabel)
这样我们创建了一个最简单的label,显示如下: //做一点效果
//改变字体大小
testLabel.font = UIFont.systemFontOfSize(20)
//改变字体颜色
testLabel.textColor = UIColor.redColor()
//改变字体位置(居中)
testLabel.textAlignment = NSTextAlignment.Center
//增加一个阴影
testLabel.shadowOffset = CGSizeMake(2.0,2.0)
testLabel.shadowColor = UIColor.blueColor()
运行效果: public var text: String? // default is nil
public var font: UIFont! // default is nil (system font 17 plain)
public var textColor: UIColor! // default is nil (text draws black)
public var shadowColor: UIColor? // default is nil (no shadow)
public var shadowOffset: CGSize // default is CGSizeMake(0,-1) -- a top shadow
public var textAlignment: NSTextAlignment // default is NSTextAlignmentLeft
public var lineBreakMode: NSLineBreakMode // default is NSLineBreakByTruncatingTail. used for single and multiple lines of text`
上面运行结果大家应该看到,text内容超过了label的宽度,所以系统默认把超出的部分截取了。那么我们能不能自己选择截取的形式呢?代码如下: /**
*
case ByWordWrapping // Wrap at word boundaries,default
case ByCharWrapping // Wrap at character boundaries
case ByClipping // Simply clip
case ByTruncatingHead // Truncate at head of line: "...wxyz"
case ByTruncatingTail // Truncate at tail of line: "abcd..."
case ByTruncatingMiddle // Truncate middle of line: "ab...yz"
*/
//直接截取方式,不会显示...
testLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
//效果同上
testLabel.lineBreakMode = NSLineBreakMode.ByClipping
testLabel.lineBreakMode = NSLineBreakMode.ByCharWrapping
//超出了的话把前面的内容截取,...表示
testLabel.lineBreakMode = NSLineBreakMode.ByTruncatingHead
//超出了的话把后面的内容截取,...表示
testLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail
//超出了的话把中间的内容截取,...表示
testLabel.lineBreakMode = NSLineBreakMode.ByTruncatingMiddle
从这里我们可以看出系统默认的是ByTruncatingTail这个形式的截取。 //高亮
testLabel.highlightedTextColor = UIColor.redColor()
testLabel.highlighted = true
这个效果我做的时候没有成功,直接运行显示就是这个颜色了,如果你成功了请告诉我一下。 //打开交互,默认是关闭的
testLabel.userInteractionEnabled = true
label的内容不知道有多少,想要自适应: let text:String = "从今天开始,我也要开始认真学习Swift,以前一直在说学习它,但是都被自己找各种理由把时间浪费了。想屎的节奏。以后开始在此记录也是鞭策自己。"
testLabel.text = text
//不限制行数
testLabel.numberOfLines = 0
//设置行数属性
let options : NSStringDrawingOptions = NSStringDrawingOptions.UsesLineFragmentOrigin
//计算
let boundingRect = text.boundingRectWithSize(CGSizeMake(320,0),options: options,attributes: [NSFontAttributeName:testLabel.font],context: nil)
//显示
testLabel.frame = CGRectMake(10,boundingRect.size.width,boundingRect.size.height)
运行效果: //单行改变字体大小去适应宽度显示所有的内容
testLabel.adjustsFontSizeToFitWidth = true
运行效果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |