UIView父子視圖
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//a.創(chuàng)建一個(gè)UIVIEW對(duì)象
let redView = UIView.init(frame:CGRectMake(100, 100, 100, 100))
//b.設(shè)置背景顏色
redView.backgroundColor = UIColor.redColor()
//c.添加到界面上
//self.view是redview的父視圖,redview就是self.view的子視圖
self.view.addSubview(redView)
//d.設(shè)置tag值慎玖,默認(rèn)都是0.設(shè)置tag值得時(shí)候值必須要大于0
//用來區(qū)分界面上不同的視圖
redView.tag = 100
//Mark:-父子視圖的特點(diǎn)和方法
//1.一個(gè)視圖只有一個(gè)父視圖绘雁,可以有多個(gè)子視圖
//連續(xù)將同一個(gè)視圖添加到兩個(gè)視圖上雪侥,最后一次添加有效
//在創(chuàng)建一個(gè)黃色視圖
let yellowView = UIView.init(frame:CGRectMake(0, 0, 50, 50))
yellowView.backgroundColor = UIColor.yellowColor()
redView.addSubview(yellowView)
self.view.addSubview(yellowView)
yellowView.tag = 101
//2.獲取一個(gè)視圖的父視圖
let superView = redView.superview
print(superView)
superView?.backgroundColor = UIColor.greenColor()
//3.獲取一個(gè)視圖所有的子視圖
let subViews = self.view.subviews
print(subViews)
//拿到所有的子視圖中的紅色視圖和黃色視圖
//第一種
for item in subViews {
//判斷item是否是UIView類型壤玫。如果是返回true,如果不是返回fasle
if item.isKindOfClass(UIView.self) {
print(item)
}
}
//第二種
for item in subViews {
if item.tag == 100{
print("紅色視圖")
item.backgroundColor = UIColor.orangeColor()
}
if item.tag == 101{
print("黃色視圖")
}
}
//4.通過tag值拿到指定的子視圖
let subView2 = self.view.viewWithTag(101)
subView2?.frame.origin.y = 100
}
}
視圖的層次關(guān)系
class ViewController: UIViewController {
//MARK:-生命周期方法
override func viewDidLoad() {
super.viewDidLoad()
self.creatUI()
}
//MARK: - 創(chuàng)建界面
func creatUI(){
//結(jié)論:
//在一個(gè)視圖上挺份,添加多個(gè)子視圖的時(shí)候褒翰,子視圖之間有公共的部分,那么后添加的子視圖會(huì)覆蓋先添加的
//一般情況下匀泊,如果想要將一個(gè)子視圖顯示在最下面优训,就最先添加,想要顯示在最上面就最后添加
//創(chuàng)建視圖
let view1 = self.creatView(CGRectMake(50, 100, 100, 100), backColor: UIColor.yellowColor())
let view2 = self.creatView(CGRectMake(100, 150, 100, 100), backColor: UIColor.redColor())
let view3 = self.creatView(CGRectMake(150, 200, 100, 100), backColor: UIColor.greenColor())
let view4 = self.creatView(CGRectMake(180, 130, 100, 100), backColor: UIColor.purpleColor())
//2將指定的視圖放在最上層
self.view.bringSubviewToFront(view2)
//3將指定的視圖放在最下層
self.view.sendSubviewToBack(view2)
//4將指定的視圖插入到另一個(gè)視圖上面
self.view.insertSubview(view2, aboveSubview: view3)
//5將指定的視圖插入到另一個(gè)視圖下面
self.view.insertSubview(view2, belowSubview: view1)
}
//創(chuàng)建視圖
func creatView(frame:CGRect,backColor:UIColor)->UIView{
//創(chuàng)建視圖對(duì)象
let subView = UIView.init(frame:frame)
//設(shè)置背景色
subView.backgroundColor = backColor
//添加到界面上
self.view.addSubview(subView)
//將創(chuàng)建的視圖對(duì)象返回
return subView
}
}
UIView動(dòng)畫
class ViewController: UIViewController {
//MARK:-生命周期方法
override func viewDidLoad() {
super.viewDidLoad()
self.creatUI()
}
//MARK: - 創(chuàng)建界面
func creatUI(){
//結(jié)論:
//在一個(gè)視圖上各聘,添加多個(gè)子視圖的時(shí)候揣非,子視圖之間有公共的部分,那么后添加的子視圖會(huì)覆蓋先添加的
//一般情況下躲因,如果想要將一個(gè)子視圖顯示在最下面早敬,就最先添加,想要顯示在最上面就最后添加
//創(chuàng)建視圖
let view1 = self.creatView(CGRectMake(50, 100, 100, 100), backColor: UIColor.yellowColor())
let view2 = self.creatView(CGRectMake(100, 150, 100, 100), backColor: UIColor.redColor())
let view3 = self.creatView(CGRectMake(150, 200, 100, 100), backColor: UIColor.greenColor())
let view4 = self.creatView(CGRectMake(180, 130, 100, 100), backColor: UIColor.purpleColor())
//2將指定的視圖放在最上層
self.view.bringSubviewToFront(view2)
//3將指定的視圖放在最下層
self.view.sendSubviewToBack(view2)
//4將指定的視圖插入到另一個(gè)視圖上面
self.view.insertSubview(view2, aboveSubview: view3)
//5將指定的視圖插入到另一個(gè)視圖下面
self.view.insertSubview(view2, belowSubview: view1)
}
//創(chuàng)建視圖
func creatView(frame:CGRect,backColor:UIColor)->UIView{
//創(chuàng)建視圖對(duì)象
let subView = UIView.init(frame:frame)
//設(shè)置背景色
subView.backgroundColor = backColor
//添加到界面上
self.view.addSubview(subView)
//將創(chuàng)建的視圖對(duì)象返回
return subView
}
}
UILabel
class ViewController: UIViewController {
//MARK:-生命周期
override func viewDidLoad() {
super.viewDidLoad()
self.creatLabel()
}
func creatLabel(){
//UILabel:UIView -> UIView的屬性和方法大脉,UILabel都擁有
//======從UIview繼承下來的屬性==============
//1.創(chuàng)建UILabel
let label = UILabel.init(frame: CGRectMake(100, 100, 200, 400))
//2搞监,添加到界面上
self.view.addSubview(label)
//3.設(shè)置背景色
label.backgroundColor = UIColor.yellowColor()
//=========UILabel自己的屬性================
label.text = "道,可道也镰矿,非恒道也琐驴。名,可名也秤标,非恒名也绝淡。 “無”,名天地之始苍姜;“有”牢酵,名萬物之母。 故衙猪,斥梢遥“無”玉罐,欲以觀其妙;撑瞬Γ“有”,欲以觀其徼饶号。 此兩者铁追,同出而異名,同謂之玄茫船。玄之又玄琅束,眾妙之門。"
//拿到label上當(dāng)前顯示的文字
print(label.text)
//2.設(shè)置字體(默認(rèn)17)
//設(shè)置系統(tǒng)字體算谈,設(shè)置字體大小
//參數(shù)1字體大小
//參數(shù)2字體粗細(xì)(0-1)
label.font = UIFont.systemFontOfSize(25)
label.font = UIFont.systemFontOfSize(25, weight:0.5)
//使用粗體涩禀,設(shè)置大小
label.font = UIFont.boldSystemFontOfSize(17)
//使用斜體,設(shè)置字體大小
label.font = UIFont.italicSystemFontOfSize(17)
//獲取系統(tǒng)所有字體的字體名
print(UIFont.familyNames())
//參數(shù)1:字體名
//參數(shù)2:字體大小
//"Zapfino","American Typewriter",HYZhuanShuF,FZJKai-Z03S
label.font = UIFont.init(name:"FZJKai-Z03S", size: 25)
//總結(jié)使用自己的字體步驟
//1將ttf文件拖到工程中
//2在info.plist文件中添加鍵值對(duì)"Fonts provided by application",將字體添加到系統(tǒng)字體庫中
//3.通過提供字體名的構(gòu)造方法創(chuàng)造字體(先要找到自己添加的字體的字體名)
//設(shè)置文字顏色
label.textColor = UIColor.greenColor()
//設(shè)置陰影顏色
label.shadowColor = UIColor.grayColor()
//設(shè)置陰影的偏移效果
label.shadowOffset = CGSizeMake(-1, 2)
//設(shè)置文字的對(duì)齊方式(默認(rèn)是左對(duì)齊)
//center - 居中
//right - 右對(duì)齊
label.textAlignment = .Center
//7設(shè)置行數(shù)
label.numberOfLines = 10
//自動(dòng)換行
label.numberOfLines = 0
//設(shè)置換行模式
//ByWordWrapping-以單詞為單位換行
//ByCharWrapping-以字符為單位換行
label.lineBreakMode = .ByCharWrapping
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//需要顯示在label上的文字
let str = " 唯之與阿然眼,相去幾何艾船?美之與惡,相去若何高每?人之所畏屿岂,不可不畏。"
//計(jì)算顯示指定文字所需的最小控件
//1.將SWIFT的字符串轉(zhuǎn)換成OC的字符串
let ocStr = str as NSString
//參數(shù)1限制顯示當(dāng)前字符串的最大寬度和最大高度
//參數(shù)2設(shè)置渲染方式(UsesLineFragmentOrigin)
//參數(shù)3確定文字的字體大小
//NSFontAttributeName-字體對(duì)應(yīng)的KEY值
//NSForegroundColorAttributeName-字體顏色對(duì)應(yīng)的key值
//參數(shù)4
let strSize = ocStr.boundingRectWithSize(CGSizeMake(200, 40000000), options: .UsesLineFragmentOrigin, attributes:[NSFontAttributeName:UIFont.systemFontOfSize(17)], context: nil).size
print(strSize)
//3創(chuàng)建lebel顯示文字
let label = UILabel.init(frame: CGRectMake(100, 100, strSize.width, strSize.height))
label.backgroundColor = UIColor.greenColor()
self.view.addSubview(label)
label.text = str
//自動(dòng)換行
label.numberOfLines = 0
}
}