Swift UI控件詳細介紹(上)

UI控件

首先介紹一下AppDelegate.swift
@UIApplicationMain 調用了OC中的UIApplicationMain函數;
UIApplicationMain是iOS應用程序的入口
UIApplicationMain:
a.建立了一個UIApplication對象,表明當前應用程序. 做用是用來檢測當前應用程序狀態的改變。 ios

  • 1.在這個方法中來搭建應用程序中的全部的界面
  • 2.獲取應用程序須要展現的數據
  • 3.使用界面展現數據

    注意:若是不在這個方法中去建立window,那麼程序會經過Main.storyboard去建立應用程序的界面swift

b.建立一個遵照UIApplicationDelegate的協議的類的對象做爲UIApplication的代理,做用是處理應用程序狀態的改變(建立AppDelegate對象而且設置爲UIApplication對象的代理)數組

這個裏面一個有六個方法分別是
1.當應用程序已經啓動成功後,會自動調用這個方法 application
2.當應用程序將要成爲非活躍狀態的時候會自動調用這個方法。applicationWillResignActive閉包

活躍狀態:程序在屏幕上可見
非活躍狀態:程序沒有顯示在屏幕上(按home鍵進入後臺、來電打斷、在當前應用程序打開其餘的應用程序app

3.應用程序已經進入後臺的時候會自動調用( 進入後臺:按home鍵)applicationDidEnterBackgroundless

按下home鍵:command + shift + h
在這個方法中通常去暫停視頻/音頻播放;遊戲須要暫停遊戲;保存數據iview

4.應用程序將要進入前臺的時候會自動調用( 進入前臺)applicationWillEnterForegrounddom

按兩下home鍵:command + shift + h + h(模擬器)ide

5.應用程序已經變成活躍狀態的時候會自動調用 applicationDidBecomeActive函數

a.程序啓動成功後
b.程序從後臺從新進入前臺
c.來電打斷結束

6.應用程序將要終止的時候會調用applicationWillTerminate

UIview

UIview:是ios中全部視圖(控件)直接/間接的父類;因此uiview的屬性和方法,對於其餘類型的視圖都有效
視圖:在屏幕上能看見的全部東西屬於視圖

1.建立UIView的對象

let redView = UIView.init()

2.設置frame屬性(由座標(x,y)和大小(width,height)兩部分組成

redView.frame = CGRectMake(10, 10, 100, 100)
a必須設置座標和大小(默認座標(0.0),大小(0,0)) b將視圖添加到已經展現在屏幕上的視圖上 ios中因此的結構都有一個對應的Make方法用來快速的建立一個結構體變量

3.把視圖添加到界面上

self.view.addSubview(redView)

4.設置背景顏色

視圖的背景顏色默認是透明
CGFloat就是UI中的浮點型
顏色建立方式:a經過類型方法建立指定顏色

redView.backgroundColor = UIColor.greenColor()

b經過三原色建立顏色(red,green,blue:紅綠藍的值(0-1) alpna:透明的值(0-1)

redView.backgroundColor = UIColor.init(red: 30/255.0, green: 133/255.0, blue: 26/255.0, alpha: 1)

總結:計算視圖座標的時候,注意相對性,當前視圖被添加到那個視圖上那麼當前視圖的座標就是相對於誰來算的

相關屬性

let readView = UIView.init() self.view.addSubview(readView)

設置背景顏色

readView.backgroundColor = UIColor.redColor()

1.frame(座標和大小)

readView.frame = CGRectMake(100, 100, 100, 100)

2.center(中心點)
a經過frame和肯定視圖的中心點座標

print(readView.center)

b能夠經過center的值,取改變視圖的座標

readView.center = CGPointMake(200, 200) print(readView.frame)

3.bounds(座標和大小)
默認狀況下bounds的座標是(0.0),大小和視圖的frame大小同樣

瞭解:
rg改變bouns的大小,frame的大小和座標都改變,center不變
若是改變bounds的座標,不影響當前視圖的位置。可是影響添加當前視圖上的子視圖不建議修該bounds

形變

transform(變形):當前視圖發生形變,那麼添加到當前視圖上全部的視圖會跟着一塊兒形變
a縮放改變 參數1:x方向上的縮放比例,參數2y方向上的縮放比例

readView.transform = CGAffineTransformMakeScale(0.5, 0.5)

b.旋轉(參數旋轉角度(圓周率對應的角度值)(0-360 或 0 到 2*M_PI))

readView.transform = CGAffineTransformMakeRotation(CGFloat( M_PI_4))

c:多個變形同時發生 在另一個形變的前提下旋轉 參數1:另一個形變 參數2:旋轉角度

readView.transform = CGAffineTransformRotate(CGAffineTransformMakeScale(0.5, 0.5), CGFloat(M_PI_4/2))

在另一個形變的前提下平移

readView.transform = CGAffineTransformTranslate(readView.transform, 0, 300)

在另外一個形變的前提下縮放

readView .transform = CGAffineTransformScale(CGAffineTransformMakeTranslation(100, 0), 0.5, 2)

組合兩個形變

readView.transform = CGAffineTransformConcat(readView.transform, CGAffineTransformMakeTranslation(0.5, 300))

父子視圖

MARK:-父子視圖的特色和方法
建立黃色視圖

let yellView=UIView.init(frame: CGRectMake(0, 0, 50, 50)) yellView.backgroundColor=UIColor.yellowColor()

設置tag值,默認都是0,設置tag值的時候值必須大於0
tag的做用是區分界面不一樣的視圖

redVIew.tag=10

1.一個視圖只有一個父視圖,能夠有多個子視圖
連續將同一個視圖添加到兩個視圖。最會添加有效

redVIew.addSubview(yellView)
         self.view.addSubview(yellView) yellView.tag=11

2獲取一個視圖的父視圖

let auperView = redVIew.superview auperView?.backgroundColor = UIColor.greenColor()

3.獲取一個視圖的因此子視圖

let sub = self.view.subviews

4.經過tga值拿到指定的值的子視圖

let sub1 = self.view.viewWithTag(11) sub1?.frame.origin.y+=200

層次關係

在一個視圖上,添加多個子視圖的時候,子視圖之間若是有公共的部分,那麼後添加的子視圖會覆蓋先添加的
通常狀況下,若是想要將一個視圖顯示在最下面,就最後添加,要想顯示在最上面的就最後添加
建立視圖

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, 150,100,100), backColor: UIColor.blueColor())

將指定的視圖放到最上層

self.view.bringSubviewToFront(view1)

將指定視圖放到最下層

self.view.sendSubviewToBack(view3)

將指定的視圖插入到另外一個視圖上面

self.view.insertSubview(view3, aboveSubview: view2)

將指定的視圖插入到另外一個視圖的下面

self.view.insertSubview(view2, belowSubview: view1)

動畫

動畫 UIView的動畫是用來改變更畫的視圖frame相關屬性,背景顏色透明度 形變等
下面介紹4種
建立視圖

subView.frame = CGRectMake(0, 0, 100, 100) subView.center = self.view.center subView.backgroundColor = UIColor.blueColor() self.view.addSubview(subView) layearAction() UIViewAnimation1()

參數1:動畫時間 參數2:延遲時間 參數3:整個動畫完成以後自動調用這個方法

func UIViewAnimation1(){ UIView.animateWithDuration(2, animations: { self.subView.transform = CGAffineTransformMakeTranslation(0, -300) }) { (_) -> Void in // 動畫結束須要執行的代碼 UIView.animateWithDuration(3, animations: { self.subView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4)) self.subView.transform=CGAffineTransformMakeTranslation(0, 0) }) } }
參數1:動畫時間 參數2:延遲時間 參數3:選項 (.Repeat動畫重複執行,.Autoreverse自動回到動畫開始的狀態) 參數4:動畫結束時視圖狀態的閉包 參數5:整個動畫過程完成後須要執行的閉包
func UIViewAnimation2(){ UIView.animateWithDuration(1, delay: 0.5, options: [ .Repeat, .Autoreverse,.CurveEaseInOut], animations: { // self.subView.alpha = 0.6 self.subView.transform = CGAffineTransformMakeTranslation(0, -300) self.subView.transform = CGAffineTransformMakeRotation(CGFloat(360)) self.subView.backgroundColor = UIColor.greenColor() }, completion: nil) }

功能:執行這個方法前視圖狀態,動畫切換到閉包裏面設置的最終狀態 參數1:動畫時間(單位秒) 參數2:設置動畫結束是的視圖狀態

func UIViewAnimation3(){ UIView.animateWithDuration(1) { // 在這設置視圖動畫結束是狀態 self.subView.frame.origin.y=50 self.subView.frame.size = (CGSizeMake(50, 50)) self.subView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4)) self.subView.backgroundColor = UIColor.redColor() // 設置透明度 self.view.alpha = 0.3 } }
參數1:動畫時間 參數2:延遲時間 參數3:彈簧板壓力系數 參數4:彈簧初始加速度 參數5:選項 參數6:設置動畫結束視圖狀態 參數7:動畫結束後執行的閉包
func UIViewAnimation4(){ UIView.animateWithDuration(2, delay: 1, usingSpringWithDamping: 0.1, initialSpringVelocity: 0, options: [ .Repeat, .Autoreverse], animations: { self.subView.alpha = 0.6 self.subView.transform = CGAffineTransformMakeTranslation(0, -300) self.subView.transform = CGAffineTransformMakeRotation(CGFloat(720)) // 注意:對於有圓角的矩形,改變大小而又不影響形狀,只能經過形變取縮放,不能直接改變frame中的size self.subView.transform = CGAffineTransformMakeScale(0, -300 ) self.subView.backgroundColor = UIColor.randomColor() }, completion: nil) }

補充layer 屬性是負責視圖的形狀(顯示) 切圓角 當圓角值爲正方形的一半,就能夠切一個圓

func layearAction(){ self.subView.layer.cornerRadius = 20 //設置邊框 self.subView.layer.borderWidth = 3 self.subView.layer.borderColor = UIColor.randomColor().CGColor }

UIlable

UIlable:UiView -> UIView的屬性方法UIlabel 都擁有,從UIView繼承下來的屬性

// 建立UIlabel對象 let label = UILabel.init(frame: CGRectMake(10, 10, 400, 600)) // 添加到界面 self.view.addSubview(label) // 設置顏色 label.backgroundColor = UIColor.greenColor() // 1.UILabel特有的屬性 // 設置label上顯示文字 label.text = "《書湖陰先生壁》茅檐常掃淨無苔,花木成畦手自栽。一水護田將綠繞,兩山排闥送青來。" // 拿到lable上的文字 print(label.text) // 2.設置字體(默認大小17) // 使用系統字體 設置字體大小 label.font = UIFont.systemFontOfSize(26) // 參數1:字體大小 參數:2 字體粗細 使用系統字體 label.font = UIFont.systemFontOfSize(36, weight: 6) // 使用系統粗體 設置大小 label.font = UIFont.boldSystemFontOfSize(36) // 使用系統斜體 設置字體大小 label.font = UIFont.italicSystemFontOfSize(66) // 3.設置文本顏色(默認黑色) label.textColor = UIColor.redColor() // 設置陰影顏色 label.shadowColor = UIColor.blueColor() // sz陰影的偏移 label.shadowOffset.height=6 label.shadowOffset.width=6 label.shadowOffset = CGSizeMake(0, 1) // 設置文字的劇中模式(默認左對齊) label.textAlignment = .Center // 設置行數 label.numberOfLines = 15 // 自動換行 // label.numberOfLines = 0 // 設置換行模式 ByWordWrapping以單詞爲單位換行 ByCharWrapping 以字符爲單位換行 label.lineBreakMode = .ByCharWrapping

補充使用本身字體的步驟
1.將ttf文件拖到工程中
2.在info.plist文件中添加鍵值對 Fontsprovided by appli 將字體添加到系統字體庫
3.經過提供系統名的構造方法取建立字體(要先找到本身添加的字體的字體名

label.font = UIFont.init(name: "HYZhuanShuF", size: 26)

根據文字設置label大小

須要顯示在Lable上的文字

let str = "ikdh" // 計算顯示指定文字所須要的最小空間 // 1.將swift的字符串轉換成OC的字符串 let ocstr = str as NSString // 2.計算字符串的大小 // 參數1:限制顯示當前字符串的最大寬度和長度 // 參數2:渲染方式(UsesLineFragmentOrigin) // 參數3:肯定文字字體大小(NSFontAttributeName)字體對應的Key值 NSForegroundColorAttributeName顏色值 // 參數4: let strSize = ocstr.boundingRectWithSize(CGSizeMake(200, 200), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName:UIFont.systemFontOfSize(17)], context: nil).size print(strSize) // 建立lable顯示文字 let lable = UILabel.init(frame: CGRectMake(100, 100, strSize.width, strSize.height)) lable.backgroundColor = UIColor.blueColor() self.view.addSubview(lable) lable.text = str lable.numberOfLines = 0

UIImageView

建立UIImageView對象 let img = UIImageView(frame: CGRectMake(100, 100, 200, 300)) // 設置背景顏色 img.backgroundColor = UIColor.yellowColor() // 添加到界面 self.view.addSubview(img) // UIImageView專有的屬性 // image屬性 // 經過圖片名去建立一個圖片對象(注意:若是圖片的格式是png,那麼圖片名的後綴能夠省略,可是其餘格式的圖片的圖片後綴名不能省略 img.image = UIImage.init(named: "luffy") // 經過圖片路徑去建立一個圖片對象 // 將文件(處了Swift文件)放到工程中實質是放到當前應用程序的包文件中 // 拿到工程中圖片路徑先要獲取包文件的路徑 // 拿到包中的指定的文件路徑 let k = NSBundle.mainBundle().pathForResource("luffy", ofType: "png") img.image = UIImage(contentsOfFile: k!) // 比較經過圖片名和經過圖片地址建立圖片對象 的兩種方法 // 1.1.經過圖片名建立的圖片對象在程序結束後纔會被銷燬,只會建立一次,經過圖片地址建立的圖片對象是當前圖片對象不在使用的時候就銷燬 // 1.2.使用圖片名建立圖片的狀況下:建立小圖標的時候,在工程中會重複使用的圖片 // 1.3.使用圖片地址建立圖片對象的狀況:不會頻繁的在多個界面出現大圖 // 2.內容模式 img.contentMode = .ScaleToFill
幀動畫
//調用下面建立的幀動畫的方法 CrectImage() // 建立一個定時器,而且自動開啓 // 參數1.定時間 參數2.調用對象的方法 參數3.存儲定時時間到了之後須要調用的方法(能夠不帶參也能夠帶參,帶參數只能帶一個參數,而且參數類型是NSTimer類型) 參數4.給當前的NSTimer的userInfo屬性賦值 參數5. 是否重複 // 功能每一個0.1秒 self取調用一次timerAction方法 NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "timerAction:", userInfo: nil, repeats: true) } // 參數:當前定時器 func timerAction(timer:NSTimer){ self.imgView.frame.origin.x += 6 // 判斷小鳥是否飛到了屏幕邊緣 if self.imgView.frame.origin.x >= self.view.bounds.width-self.imgView.bounds.width{ self.imgView.frame.origin.y += 60 self.imgView.frame.origin.x -= 60 // 中止定時器 // timer.fireDate = NSDate.distantFuture() // 繼續 // timer.fireDate = NSDate.distantPast() } if self.imgView.frame.origin.y >= self.view.bounds.width-self.imgView.bounds.width{ self.imgView.frame.origin.y -= 60 self.imgView.frame.origin.x -= 60 } } func CrectImage(){ // 建立一UIImageView // 經過圖片建立一個Image:UIImageView的大小是圖片大小座標是(0.0) imgView = UIImageView.init(image: UIImage.init(named: "DOVE 1.png")) // 在界面顯示 self.view.addSubview(imgView) // 3.使用UIImageview播放幀動畫 // 3.1設置幀動畫數組 var imgAray = [UIImage]() for item in 1...18{ let imgname = "DOVE \(item).png" let img = UIImage.init(named: imgname) imgAray.append(img!) } imgView.animationImages = imgAray // 3.2設置動畫時間,單位秒 imgView.animationDuration = 0.5 // 設置動畫重複次數(默認是0,無線循環) imgView.animationRepeatCount = 0 // 3.4開始動畫 imgView.startAnimating() }

UIButton(按鈕)

文字按鈕

// 1.建立UIButton對象 let botton = UIButton.init(frame: CGRectMake(100, 100, 200, 200)) // 2.設置背景顏色 botton.backgroundColor = UIColor.redColor() // 3.添加到視圖 self.view.addSubview(botton) // 4.設置按鈕上顯示的文字 // 參數1 想要在按鈕上顯示的文字 參數2 :狀態 // Normal-》正常狀態顯示沒有被點擊 Highlighted-》高量狀態按下去尚未彈起來的時候狀態 ->Selected選中狀態 -》.Disabled不可用狀態 botton.setTitle("世界你好布!", forState: .Normal) botton.setTitle("我很好!", forState: .Highlighted) // 設置當前按鈕是否選中(默認是false) botton.selected = false botton.setTitle("世界你好1!", forState: .Selected) // 設置不可用(默認是true) botton.enabled = true botton.setTitle("不可用", forState: .Disabled) // 設置文字顏色(能夠給不一樣的狀態設置不一樣的顏色) botton.setTitleColor(UIColor.yellowColor(), forState: .Highlighted) // 注意按鈕上的文字和顏色,必須經過對應的set方法取根據狀態設置,其餘相關的屬性能夠經過拿到titlelabel取設置 // 設置按鈕文字字體 botton.titleLabel?.font = UIFont.systemFontOfSize(38) // 設置對齊方式 botton.titleLabel?.textAlignment = .Center // 給按鈕添加時間 參數1:調用方法的對象 參數2 :指定時間發生後參數1要去調用的方法(能夠不帶參數,帶只能帶一個 而且必須是UIButton) 參數3:設置事件 // TouchDown->按下時間 ->按下彈起事件 // 功能當按鈕被按下的時候self就會取調用buttonAction方法 botton.addTarget(self, action: "buttonAction:", forControlEvents: .TouchDown)

圖片按鈕

let imageButton = UIButton.init(frame: CGRectMake(100, 300, 200, 200)) // 設置背景圖片 參數1 :圖片 參數2 :狀態 imageButton.setImage(UIImage.init(named: "luffy4"), forState: .Normal) imageButton.layer.borderColor = UIColor.init(red: CGFloat(arc4random()%256)/255, green: CGFloat(arc4random()%256)/255, blue: CGFloat(arc4random()%256)/255, alpha: 1).CGColor // 添加點擊時間 imageButton.addTarget(self, action: "buttonAction1:", forControlEvents: .TouchDown)

圖片文字按鈕

let itbutton = UIButton.init(frame: CGRectMake(100, 500, 200, 200)) self.view.addSubview(itbutton) itbutton.setTitle("你好", forState: .Normal) // itbutton.setImage(UIImage.init(named: "luffy"), forState: .Normal) itbutton.setTitleColor(UIColor.greenColor(), forState: .Normal) // 添加事件 itbutton.addTarget(self, action: "buttonAction1:", forControlEvents: .TouchDown) itbutton.setBackgroundImage(UIImage.init(named: "luffy"), forState: .Normal) itbutton.titleLabel?.font = UIFont.boldSystemFontOfSize(36) }

UITextField(文本框)

//UITextField:UIControl:UIView //===========UIView的屬性和方法======= //1.建立UITextField對象 let textField = UITextField.init(frame: CGRectMake(100, 100, 200, 50)) //2.添加到界面上 self.view.addSubview(textField) //3.設置背景顏色 textField.backgroundColor = UIColor.yellowColor() //4.再建立一個UITextField對象 let textField2 = UITextField.init(frame: CGRectMake(100, 200, 200, 50)) self.view.addSubview(textField2) textField2.backgroundColor = UIColor.yellowColor() textField2.delegate = self //=====textField的專有屬性和方法==== //(1)文字相關 //1.text屬性 //設置文本輸入框的內容 textField.text = "你好世界" //拿到文本輸入框的內容 print(textField.text) //2.文字顏色 textField.textColor = UIColor.brownColor() //3.設置文字字體 textField.font = UIFont.systemFontOfSize(14) //4.設置佔位文字(在輸入框的內容爲空的時候就會顯示出來) textField.placeholder = "請輸入帳號" //5.設置文本的對齊方式(默認是:左對齊) textField.textAlignment = .Left //6.密文顯示(默認是false) textField.secureTextEntry = true //(2)顯示相關 //1.設置文本框的樣式 textField.borderStyle = .RoundedRect //2.設置清除按鈕模式(清除按鈕實質是rightView) //(前提是輸入框中有文字) //Always -> 一直顯示 //Never -> 從不顯示(默認) //WhileEditing -> 當文本輸入框處於編輯狀態的時候才顯示 //UnlessEditing ->當文本輸入框處於非編輯狀態的時候才顯示 //注:當文本輸入框中有光標的時候就是處於編輯狀態 textField.clearButtonMode = .Always //3.左視圖 let leftImageView = UIImageView.init(frame: CGRectMake(0,0, 40,40)) leftImageView.image = UIImage.init(named: "luffy1") //設置左視圖 textField.leftView = leftImageView //設置左視圖的顯示模式(肯定何時顯示,默認是從不顯示) textField.leftViewMode = .Always //4.右視圖 //當右視圖顯示的時候,清除按鈕不能顯示 /* let rightLabel = UILabel.init(frame: CGRectMake(0, 0, 40, 40)) rightLabel.text = "你好" textField.rightView = rightLabel textField.rightViewMode = .Always */ //(3)鍵盤相關 //1.設置鍵盤上返回按鈕的樣式 textField.returnKeyType = .Search //2.鍵盤樣式 textField.keyboardType = .Default //3.設置自定義的鍵盤 //自定義的鍵盤,只有高度有效。寬度是屏幕的寬度 let myInputView = UIView.init(frame: CGRectMake(0, 0, 0, 256)) myInputView.backgroundColor = UIColor.redColor() //textField.inputView = myInputView //4.設置子鍵盤 let accessoryView = UIView.init(frame: CGRectMake(0, 0, 0, 50)) accessoryView.backgroundColor = UIColor.greenColor() textField.inputAccessoryView = accessoryView //(4)設置代理 //textField ->委託 //self -> 代理 textField.delegate = self

拓展

extension ViewController: UITextFieldDelegate{ //1.當按鍵盤上的返回按鈕的時候,會自動調用 func textFieldShouldReturn(textField: UITextField) -> Bool{ print("返回按鈕被點擊") //收起鍵盤(結束編輯) //1.放棄第一響應者 textField.resignFirstResponder() //2.直接讓指定的textField結束編輯 textField.endEditing(true) //3.讓self.view上的全部的子視圖都結束編輯 self.view.endEditing(true) return true } //2.當點擊textField彈出來的鍵盤上的按鍵的時候會自動調用這個方法 //參數1:委託 //參數2:當前輸入的字符所在的位置 //參數3:當前輸入的字符串(在鍵盤上按的鍵的值) //返回值:是否可改變textField的text屬性();false -> 按鍵盤上的按鍵無效 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool{ print(range) print(string) if string == "0" { print("進入祕密頁") } return true } //3.當文本輸入框已經結束編輯的時候會自動調用這個方法 func textFieldDidEndEditing(textField: UITextField){ print("已經結束編輯") } //4.當文本輸入框已經開始編輯的時候會自動調用這個方法 func textFieldDidBeginEditing(textField: UITextField){ print(textField.text) print("已經開始編輯") } //5.當文本輸入框將要結束編輯的時候會自動調用這個方法 //返回:設置當前的textField是否能夠結束編輯(默認是true) func textFieldShouldEndEditing(textField: UITextField) -> Bool{ print("將要結束編輯") //要求文本輸入框中的文字長度要大於等於8的時候才能結束編輯 if textField.text?.characters.count >= 8 { return true } return false } //6.在textField將要開始編輯的時候會自動調用 //參數:當前這個協議對應的委託 //返回值:設置當前的textField是否能夠進行編輯(默認是true) func textFieldShouldBeginEditing(textField: UITextField) -> Bool{ print("將要開始編輯") return true //false ->讓textField不能進行編輯 } }

.UISwitch(開關)

func creatSwitch() { //1.建立開關對象 //UISwitch:UIControl:UIView let sw = UISwitch.init(frame: CGRectMake(100, 100, 100, 50)) //2.添加到界面上 self.view.addSubview(sw) //3.核心屬性:開關狀態(默認是:關) //設置開關的狀態 sw.on = true //false -> 關 sw.setOn(false, animated: true) //拿到當前的狀態 print(sw.on) //4.核心方法: //參數1:調用方法的對象 //參數2:指定的事件發生後參數1要去調用的方法對應的selector //參數3:事件 //功能:當開關的值(開關的狀態)發生改變的時候,self會去調用switchAction方法 sw.addTarget(self, action: "switchAction:", forControlEvents: .ValueChanged) //5.設置開關開的狀態的顏色(默認是綠色) sw.onTintColor = UIColor.redColor() //6.開關關閉的時候的邊框顏色 sw.tintColor = UIColor.purpleColor() //7.設置開關上的滑塊的顏色 sw.thumbTintColor = UIColor.yellowColor()

UISlider(滑條)

//1.建立滑條對象 //UISlider:UIControl:UIView let slider = UISlider.init(frame: CGRectMake(100, 160, 200, 20)) //2.添加到界面上 self.view.addSubview(slider) //3.核心屬性:值 //value:滑塊的位置對應的值(默認是0~1) slider.value = 0.5 //最小值和最大值 slider.minimumValue = 0 slider.maximumValue = 100 //4.核心方法 slider.addTarget(self, action: "sliderAction:", forControlEvents: .ValueChanged) //5.是否連續改變 slider.continuous = false //文字圖片給以前的用法是同樣的就不一一介紹了

UIStepper(步進器)

//1.建立步進器對象 let stepper = UIStepper.init(frame: CGRectMake(100, 200, 100, 50)) //2.添加到界面上 self.view.addSubview(stepper) //3.核心屬性:值 //當前值 stepper.value = 1 print(stepper.value) //最小值和最大值 stepper.minimumValue = 0 stepper.maximumValue = 10 //步進(每按一下加或者減,增長/減小的值) stepper.stepValue = 1 //步進值必須大於0 //4.核心方法 stepper.addTarget(self, action: "stepperAction:", forControlEvents: .ValueChanged) //5.設置值是否連續改變(按住不放的時候) stepper.continuous = false //6.設置是否重複 false->按住不放的時候不計數;true->按住不放的時候計數(默認) stepper.autorepeat = false //7.設置填充顏色 stepper.tintColor = UIColor.redColor()

UIProgressView(進度條)

func creatProgress() { //1.建立進度條對象 //UIProgressView : UIView let progress = UIProgressView.init(frame: CGRectMake(100, 300, 200, 20)) progress.tag = 100 //2.添加到界面上 self.view.addSubview(progress) //3.核心屬性 //進度:0~1 //設置當前進度 progress.progress = 0.5 progress.setProgress(0.6, animated: true) //4.顏色相關 //5.圖片相關

UIActivityIndicatorView(活動指示器)

func creatActivity() { //1.建立活動指示器對象 //UIActivityIndicatorView : UIView let activity = UIActivityIndicatorView.init(frame: CGRectMake(100, 360, 50, 50)) //2.添加到界面上 self.view.addSubview(activity) //3.想要讓活動指示器顯示,必須讓它開始動畫 activity.startAnimating() //4.中止動畫->活動指示器就會消失 //activity.stopAnimating() //5.設置活動指示器的樣式 activity.activityIndicatorViewStyle = .WhiteLarge

UISegmentedControl(多段選擇器)

func creatSegement() { //1.建立多段選擇器對象 //UISegmentedControl : UIControl //參數1:分段選擇器上的內容對應的數組 let segemnet = UISegmentedControl.init(items: ["海賊王","火影忍者","死神"]) segemnet.frame = CGRectMake(100, 400, 200, 50) //2.顯示在界面上 self.view.addSubview(segemnet) //3.核心屬性 //a.每一個分段上的內容 ->經過建立分段選擇器的時候去設置 //b.當前選中的分段的下標(從0開始) segemnet.selectedSegmentIndex = 0 //4.核心方法 segemnet.addTarget(self, action: "segementAction:", forControlEvents: .ValueChanged) //5.拿到分段選擇的分段數 print(segemnet.numberOfSegments) //6.設置填充顏色 segemnet.tintColor = UIColor.whiteColor() }

以上事件響應

extension ViewController{ //4.分段選擇器事件 func segementAction(segement:UISegmentedControl) { print(segement.selectedSegmentIndex) //拿到當前被選中的分段的title print(segement.titleForSegmentAtIndex(segement.selectedSegmentIndex)) } //3.步進器 func stepperAction(stepper:UIStepper) { print(stepper.value) } //2.滑條 func sliderAction(slider:UISlider) { print(slider.value) //拿到進度條 let progress = self.view.viewWithTag(100) as! UIProgressView let t = slider.value/(slider.maximumValue - slider.minimumValue) progress.setProgress(t, animated: true) } //1.開關事件 func switchAction(sw:UISwitch) { if sw.on { print("開關打開") }else{ print("開關關閉") } } }

警告框

//1.建立一個表單視圖 //UIAlertController : UIViewController //參數1:標題 //參數2:信息 //參數3:風格(ActionSheet->表單,Alert->警告框) let alterController = UIAlertController.init(title: nil, message: "消息", preferredStyle: .Alert) //2.添加到界面上 //參數1:須要顯示的視圖控制 self.presentViewController(alterController, animated: true, completion: nil) //3.添加選項按鈕 //參數1:選項對應的按鈕上的文字 //參數2:風格 //參數3:噹噹前選項對應的按鈕被點擊後會執行的代碼對應的閉包 let action = UIAlertAction.init(title: "相機", style: .Default) { (_) in print("相機被點擊") } //Destructive風格 let action2 = UIAlertAction.init(title: "相冊", style: .Destructive) { (_) in print("相冊被點擊") } //Cancel風格 let action3 = UIAlertAction.init(title: "取消", style: .Cancel) { (_) in print("取消") } //添加相機對應的action alterController.addAction(action) //添加相冊對應的action alterController.addAction(action2) // alterController.addAction(action3)

UITextView (顯示區文本)

//1.建立textView對象 //UITextView:UIScrollView : UIView textView = UITextView.init(frame: CGRectMake(100, 100, 200, 70)) //2.添加到界面上 self.view.addSubview(textView) //3.設置背景顏色 textView.backgroundColor = UIColor.yellowColor() //4.text屬性 textView.text = " default is nil. Can be useful with the appearance proxy on custom UIView subclasses." //5.設置是否能夠選中和編輯 //默認是true -> 能夠選中和編輯 textView.selectable = true //6.是否能夠選中刪除全部 textView.clearsOnInsertion = true //7.其餘的屬性和方法參考UITextField
//在點擊當前頁面的時候會自動調用這個方法 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { //5.獲取選中的範圍 let range = textView.selectedRange print(range) } }
相關文章
相關標籤/搜索