
从今天开始,我也要开始认真学习Swift,以前一直在说学习它,但是都被自己找各种理由把时间浪费了。想屎的节奏。以后开始在此记录也是鞭策自己。Swift基本的语法知识我不在这写了,直接开始UI部分,因为网上已经有好多的Swift的基础知识部分了,人家说的都很好,我也就不献丑了。
今天说一下UILabel这个控件,基本上这应该是iOS最简单的一个控件了。我会结合苹果的API,然后加上自己的小demo开始。好了,Let’s Go!
首先我们先创建一个简单的Label:
var testLabel = UILabel(frame: CGRectMake(50,100,150,50)) testLabel.text = "这是我的一个label" self.vIEw.addSubvIEw(testLabel)
这样我们创建了一个最简单的label,显示如下:
接下来你想在这个简单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()
运行效果:
在代码里面我已经注释了,大家应该能看懂。官方API:
public var text: String? // default is nilpublic 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 shadowpublic var textAlignment: NSTextAlignment // default is NSTextAlignmentleftpublic 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这个形式的截取。
想不想在你点击这个label的时候让label内容颜色改变:
//高亮 testLabel.highlightedTextcolor = UIcolor.redcolor() testLabel.highlighted = true
这个效果我做的时候没有成功,直接运行显示就是这个颜色了,如果你成功了请告诉我一下。
想在点击label的时候去做一些事情,你必须做的一步 *** 作:
//打开交互,默认是关闭的 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)
运行效果:
如果你需要的效果是单行label根据内容多少适应宽度:
//单行改变字体大小去适应宽度显示所有的内容 testLabel.adjustsFontSizetoFitWIDth = true
运行效果:
以上是内存溢出为你收集整理的Swift 一,UILabel详解全部内容,希望文章能够帮你解决Swift 一,UILabel详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)