首先来说,UILabel 直接继承自UIView,它并不是一个控件,放在这里是因为UILabel是一个比较重常用的界面元素,也是iOS开发必备的一个文本视图。
- UILabel是iOS开发必备的一个文本视图,可以通过设置单行或多行文本在其显示区域中,向用户显示信息。
- UILabel支持两种文本字符串,一种是常用的String,另一种是NSAttributedString。
- UILabel+String可以实现一般的视觉要求,比如字体、字号、颜色、阴影等。
- UILabel+NSAttributedString可以实现对字符串的某些位置的字符,设置不同的颜色、字体、字号、阴影等。
- 这里有一个神器CoreText有时间就看看。
一些基操
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| let label = UILabel(frame: CGRect(x: 20, y: 220, width: 280, height: 40))
label.backgroundColor = UIColor.clear
label.textColor = UIColor.white
label.font = UIFont.systemFont(ofSize: 15)
label.textAlignment = NSTextAlignment.left
label.text = "Hello UILabel~"
view.addSubview(label)
|
处理长文案时
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| label.numberOfLines = 0;
label.lineBreakMode = NSLineBreakMode.byTruncatingMiddle
label.adjustsFontSizeToFitWidth = true label.minimumScaleFactor = 12
label.allowsDefaultTighteningForTruncation = true
|
这里给出了一个可以自适应UILabel宽高的函数
1 2 3 4 5 6 7 8 9 10 11 12
|
func getTextRectSize(text:NSString, font:UIFont, size:CGSize) ->CGRect { let attributes = [NSFontAttributeName:font] let option = NSStringDrawingOptions.usesLineFragmentOrigin return text.boundingRect(with: size, options: option, attributes: attributes, context: nil) }
|
还有一个阴影的设置…这里是文字阴影
1 2 3 4
| label.shadowColor = UIColor.lightGray
label.shadowOffset = CGSize(width: 2, height: 2)
|
如果想设置框框的阴影,给出导航栏的阴影设置做示范,主要就是layer的使用啦( ̄▽ ̄)~*
1 2 3 4 5 6 7 8
| navigationController?.navigationBar.shadowImage = UIImage(named:"")
navigationController?.navigationBar.layer.shadowColor = UIColor.green.cgColor
navigationController?.navigationBar.layer.shadowOffset = CGSize(width: 0, height: 10)
navigationController?.navigationBar.layer.shadowOpacity = 0.2
|