第五週Swift總結

saman0發表於2017-12-14

##day one 學到UI章節,不再是之前自己建立類了,而是呼叫別人建立好的的類來完成一些事。 基本的套路就是由UIview這個類建立一個物件,然後新增到介面上,弄點顏色,最後在用一些方法調整一下該圖形的位置和修改大小,這裡重點講解了一些方法: 1.frame改變座標和大小(redView.frame = CGRectMake(0,0,0,0)) 2.center中心點的位置(redView.center = CGPointMake(0,0)) 3.bounds座標和大小

4.transform 這是旋轉變形 redView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI/4)) 這是縮小放大 redView.transform = CGAffineTransformMakeScale(0.5,0.5) 這是平移 redView.transform = CGAffineTransformMakeTransLation(0,300) 可以產生幾種形變 這裡是三種形變      redView.transform = CGAffineTransformRotate(CGAffineTransformMakeScale(0.5, 0.5), CGFloat(M_PI/8))         redView.transform = CGAffineTransformTranslate(redView.transform, 0, 300) 這裡是兩種形變        let transLation = CGAffineTransformMakeTranslation(100, 0)        redView.transform = CGAffineTransformScale(transLation, 0.5, 2) 這是第二種方法兩種形變合併        let rotate = CGAffineTransformMakeRotation(0.2)         let transLation1 = CGAffineTransformMakeTranslation(100, 100)        redView.transform = CGAffineTransformConcat(rotate, transLation1) 利用紅綠藍三基色產生隨機色         redView.backgroundColor = UIColor(red: 48/255.0, green: 128/255.0, blue: 49/255.0, alpha: 1) 建立灰色         redView.backgroundColor = UIColor(white: 0.4, alpha: 1)

##day two 根據tag值來區別或者拿一些特定的檢視 這裡是把UIview裡面的所有屬性給予給sub,而sub是有一個tag的陣列,這樣通過對陣列的遍歷然後檢視不同的tag來獲取對應不同的檢視。

        let sub = self.view.subviews
        //4.設定tag值,預設值為0,設定tag值的時候不是0
        //用來區分不同的介面上不同的檢視
        redView.tag = 100
        //拿到所有的子檢視中的紅色檢視和黃色檢視
//        for item in sub{
//            //判斷item是否是UIView型別
//            if item.isKindOfClass(UIView.self){
//                print(item)
//            }
//        }
        //b.
        for item in sub{
            if item.tag == 100{
                print("紅色檢視")
                //將紅色檢視的背景顏色變成橙色
                item.backgroundColor = UIColor.orangeColor()
            }
            else if item.tag == 101{
                print("黃色檢視")
            }
        }
複製程式碼

一個檢視只有一個父類,那麼怎麼獲取負累捏,這裡有個簡單的辦法

   let superView = redView.superview
   superView?.backgroundColor = UIColor.blueColor()
複製程式碼

檢視之間的上下關係

        //2.將指定的檢視放到最上層
        self.view.bringSubviewToFront(view2)
        
        //3.將指定的檢視放到最下層
        
        self.view.sendSubviewToBack(view1)
        
        //4.將指定的檢視插入到另一個檢視的上面
        //前面的是指定的檢視 後面的是另外一個檢視
        self.view.insertSubview(view2, aboveSubview: view3)
        
        //5.將指定的檢視插入到另一個檢視的下面
        
        self.view.insertSubview(view2, belowSubview: view1)
複製程式碼

4中動畫效果UIView.animateWithDuration 還有個layer切圓角

        //layer屬性是負責檢視的形狀(顯示)
        //切圓角
        //當圓角的值為正方形邊長的一半 就可以切成圓
        self.subView.layer.cornerRadius = 50
                //設定邊框
        
        self.subView.layer.borderWidth = 25
        
        self.subView.layer.borderColor = UIColor.redColor().CGColor
複製程式碼

label上的文字和它的關係

        let ocStr = str as NSString
                //計算字串的大小
        //引數1:限制顯示當前字串的最大寬度和最大高度
        //引數2:設定渲染方式
        //引數3:確定文字的字型大小
        //NSFontAttributeName -> 字型對應的key值
        //NSForegroundColorAttributeName -> 文字顏色對應的key值
                let strSize = ocStr.boundingRectWithSize(CGSizeMake(200, 10000000000), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName:UIFont.systemFontOfSize(17)], context: nil).size
        
複製程式碼

這裡主要講了label的屬性

        //1.建立UILabel的物件
        let label = UILabel(frame: CGRectMake(100,100,200,50))
        
        //2.新增到介面上
        
        self.view.addSubview(label)
        //3.設定背景顏色
        label.backgroundColor = UIColor.yellowColor()
        
        //=========UILabel的專有屬性============
        
        //1.text屬性
        //設定LAbel上顯示的文字
        label.text = "趙坤鵬"
        //拿到label上顯示的文字
        print(label.text)
        //**
        //設定字型
        //使用系統字型,設定字型大小預設是:17
        label.font = UIFont.systemFontOfSize(40)
        
        
        //weight設定字型的粗細(0~1)
        label.font = UIFont.systemFontOfSize(17, weight: 0.5)
        //使用系統黑體,設定字型大小
        label.font = UIFont.boldSystemFontOfSize(17)
        //使用系統斜體,設定字型大小
        label.font = UIFont.italicSystemFontOfSize(17)
        
        //獲取系統所有字型的字型名
        print(UIFont.familyNames())
        
        
        //**引數1;字型名
        //引數2:字型大小
        label.font = UIFont(name: "HYZhuanShuF", size: 40)
        
        //總結使用自己的字型的步驟:
        //1.將ttf檔案拖到工程中
        //2.在info。plist檔案中新增鍵值對“Fonts provided by application”,將字型新增到系統字型庫中
        //3.通過提供字型名的構造方法來建立字型(先要找到自己新增的字型名)
        //
        
        //設定文字顏色
        label.textColor = UIColor.redColor()
        //設定陰影顏色
        label.shadowColor = UIColor.grayColor()
        //設定陰影的偏移效果
        label.shadowOffset = CGSizeMake(-2, -1)
        //預設是左對齊
        //設定文字的居中模式 -center
        //Right - 右對齊
        //
        label.textAlignment = .Center
        
        
        //設定行數
        
        label.numberOfLines = 5
        //自動換行
        label.numberOfLines = 0
        
        //換行模式(以單詞換行)
        label.lineBreakMode = .ByWordWrapping
複製程式碼

##day three 主要講的是兩種圖片建立方式 1.前者是建立小圖 頻繁使用的為最佳 但是要程式結束後才會銷燬

2.後者是建立大圖 不頻繁使用的為最佳 不再使用的時候就銷燬 節約記憶體的目的

        //UIImageView:UIView
        //==========UIView的屬性和方法==========
        //1.建立UIImageView物件
        let imageView = UIImageView.init(frame: CGRectMake(0, 100, 300, 300))
        //2.新增到介面上
        self.view.addSubview(imageView)
        //3.設定背景顏色
        imageView.backgroundColor = UIColor.yellowColor()
        
        //=========UImageView專有屬性=========
        //1.image屬性
        //a.通過圖片名去建立一個圖片物件(注意:如果圖片的格式是png,那麼圖片名的字尾可以省略。但是其他格式的圖片的圖片名的字尾不能省略)
        imageView.image = UIImage.init(named: "back2.jpg")
        
        //b.通過圖片路徑去建立一個圖片物件
        //將檔案(除了swift檔案)放到工程中,實質是放到了當前應用程式的包檔案中
        //(想要拿到工程中的圖片路徑先要獲取包檔案;)
        //拿到包中的指定的檔案的路徑
        let imagePath = NSBundle.mainBundle().pathForResource("back2", ofType: "jpg")
        imageView.image = UIImage.init(contentsOfFile: imagePath!)
        //c.比較通過圖片名和通過圖片地址建立圖片物件的兩種方法:
        //(1).通過圖片名建立的圖片物件在程式結束後才會被銷燬,只會建立一次;通過圖片地址建立圖片物件是當前圖片物件不再使用的時候就銷燬
        //(2)使用圖片名建立圖片的情況:建立小圖示的時候;在工程中會重複使用的圖片
        //(3)使用圖片地址建立圖片物件的情況:不會頻繁的在多個介面出現的大圖
        
        //2.內容模式
        imageView.contentMode = .ScaleToFill
複製程式碼

##這裡主要講了利用定時器和圖片組一起組合而成的運動專案 難點就是注意呼叫定時器方法的時候有引數注意:一個引數一個: 將圖片弄到陣列裡面 便利組合 然後放在animationImages裡面,從而實現動畫效果

class ViewController: UIViewController {
    //MARK: - 屬性
    var imageView = UIImageView()
    
    //MARK: - 生命週期
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.creatImageView()
        
        //建立一個定時器,並且自動開啟
        //引數1:定時時間
        //引數2:呼叫方法的物件
        //引數3:儲存定時時間到了以後需要呼叫的方法(可以不帶參也可以帶參,但是如果帶參只能帶一個參,並且引數型別是NSTimer型別)
        //引數4:給當前的NSTimer的userInfo屬性賦的值(一般寫nil)
        //引數5:是否重複
        //功能:每隔0.1秒,self去呼叫一次timerAction方法
        NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "timerAction:", userInfo: "aaa", repeats: true)
        
    }
    
    //定時器方法
    //引數:當前定時器
    func timerAction(timer:NSTimer) {
        
        print(timer.userInfo)
        
        self.imageView.frame.origin.x += 3
        
        //判斷小鳥是否飛到了螢幕邊緣
        if self.imageView.frame.origin.x >= self.view.bounds.width - self.imageView.bounds.width {
            
            //暫停定時器
            timer.fireDate = NSDate.distantFuture()
            //讓定時器繼續
            //timer.fireDate = NSDate.distantPast()
            
        }
        
        
    }
    
    //建立imageView
    func creatImageView()  {
       
        //1.建立一個UIImageView物件
        //通過圖片去建立一個imageView;UIImageView的大小是圖片的大小,座標是(0,0)
        imageView = UIImageView.init(image: UIImage.init(named: "DOVE 1.png"))
        //2.顯示在介面上
        self.view.addSubview(imageView)
        
        //3.使用UIImageView播放幀動畫
        //a.設定幀動畫陣列
        //建立一個空的圖片陣列
        var imageArray = [UIImage]()
        //通過for迴圈建立18張圖片
        for item in 1...18 {
            //拼接圖片名
            let imageName = "DOVE \(item).png"
            //建立對應的圖片
            let image = UIImage.init(named: imageName)
            //將圖片存到陣列中
            imageArray.append(image!)
        }
        
        imageView.animationImages = imageArray
        
        //b.設定動畫時間,單位秒
        imageView.animationDuration = 1
        
        //c.設定動畫的重複次數(預設是0->無限迴圈)
        imageView.animationRepeatCount = 0
        
        //d.開始動畫
        imageView.startAnimating()
        
    }

    

}

複製程式碼

這裡主要講了利用UIButton來實現一些功能 給按鈕弄上圖片的方法和文字當時最重要的是點選按鈕事件 同時跳轉到按鈕上的方法 實現一些事情

    //MARK: - 圖片文字按鈕
    func imageTitleBtn() {
        
        //a.同時設定title和image屬性,顯示是圖片在左,文字在右
        //b.同時設定title和groundImage,顯示是圖片在下層,文字在上層
        //1.建立一個按鈕物件
        let btn1 = UIButton.init(frame: CGRectMake(100, 300, 100, 50))
        self.view.addSubview(btn1)
        
        //2.設定title
        btn1.setTitle("標題", forState: .Normal)
        btn1.setTitleColor(UIColor.whiteColor(), forState: .Normal)
        //3.設定圖片
        //btn1.setImage(UIImage.init(named: "luffy1"), forState: .Normal)
        btn1.setBackgroundImage(UIImage.init(named: "luffy2"), forState: .Normal)
        
        //4.新增事件
        btn1.addTarget(self, action: "btnAction:", forControlEvents: .TouchUpInside)
    }
    
    //MARK: - 圖片按鈕
    func imageButton() {
        
        //1.建立一個按鈕物件
        let imageBtn = UIButton.init(frame: CGRectMake(100, 200, 80, 80))
        //2.新增到介面上
        self.view.addSubview(imageBtn)
        
        //3.設定圖片
        //引數1:圖片
        //引數2:狀態(正常、高亮、選中、不可用)
        imageBtn.setImage(UIImage.init(named: "luffy1"), forState: .Normal)
        
        //4.新增按鈕點選事件
        imageBtn.addTarget(self, action: "btnAction:", forControlEvents: .TouchUpInside)
        
        
    }
    
    //MARK: - 文字按鈕
    func titleButton() {
        //UIButton:UIControl:UIView
        //UIButton上有一個titleLabel專門負責按鈕上文字的顯示;有一個imageView專門負責按鈕上圖片的顯示
        //=========UIView的屬性和方法========
        //1.建立UIButton物件
       let titleBtn = UIButton.init(frame: CGRectMake(100, 100, 100, 50))
       //2.新增到介面上
        self.view.addSubview(titleBtn)
        //3.設定背景顏色
        titleBtn.backgroundColor = UIColor.redColor()
        
        //=========UIButton專有的屬性和方法======
        //1.設定按鈕上顯示的文字(給不同的狀態設定不一樣的文字)
        //引數1:想要在按鈕上顯示的文字
        //引數2:狀態
        //Normal -> 正常狀態(按鈕正常顯示,沒有被點選或者按下的時候)
        //Highlighted ->高亮(按鈕被按下,沒有彈起來的時候的狀態)
        //Selected -> 選中狀態
        //Disabled -> 不可用狀態(按鈕不能被點選)
        titleBtn.setTitle("正常", forState: .Normal)
        titleBtn.setTitle("高亮", forState: .Highlighted)
        titleBtn.setTitle("選中", forState: .Selected)
        titleBtn.setTitle("不可用", forState: .Disabled)
        
        //2.設定當前按鈕是否選中(預設是false->非選中)
        titleBtn.selected = false
        
        //3.設定當前按鈕是否可用(預設是true->可用)
        titleBtn.enabled = true
        
        //4.設定文字顏色(給不同的狀態設定不一樣的顏色)
        titleBtn.setTitleColor(UIColor.yellowColor(), forState: .Normal)
        titleBtn.setTitleColor(UIColor.lightGrayColor(), forState: .Disabled)
        
        //注意:按鈕上的文字和文字顏色,必須通過對應的set方法去根據狀態去設定。其他和文字相關的屬性可以通過拿到titleLabel去設定
        //5.設定按鈕上的文字字型
        titleBtn.titleLabel?.font = UIFont.systemFontOfSize(12)
        //6.設定按鈕上的文字的對齊方式
        titleBtn.titleLabel?.textAlignment = .Right
        
        //!!!7.給按鈕新增事件
        //引數1:呼叫方法的物件
        //引數2:指定事件發生後引數1要去呼叫的方法(這個方法可以不帶參,如果帶參只能帶一個,並且引數的型別是UIButton型別),實參就是當前新增事件的按鈕本身
        //引數3:事件
        //TouchDown -> 按下事件
        //功能:當按鈕被按下的時候,self會去呼叫btnAction方法
        //TouchUpInside ->按下彈起事件
        //功能:當按鈕被按下彈起來的時候,self會去呼叫btnAction方法
        titleBtn.addTarget(self, action: "btnAction:", forControlEvents: .TouchUpInside)
        
    }
    
    //MARK: - 按鈕點選
    func btnAction(btn:UIButton) {
        
        //CGFloat(arc4random()%256)/255
        //設定按鈕的背景顏色是隨機色
        btn.backgroundColor = UIColor.init(red: CGFloat(arc4random()%256)/255, green: CGFloat(arc4random()%256)/255, blue: CGFloat(arc4random()%256)/255, alpha: 1)
    }

}
複製程式碼

由於按鈕是由圖片和文字組合而成的,這裡是製作按鈕按照一定比例組合而成

    //圖片高度是整個按鈕高度的4/5;文字高度是整個按鈕高度的1/5

    //功能:設定button上的imageView的座標和大小
    //引數1:當前按鈕的範圍(只需要大小)
    //返回值:重新設定的圖片的座標和大小
    override func imageRectForContentRect(contentRect: CGRect) -> CGRect {
        
        let x:CGFloat = 0
        let y:CGFloat = 0
        let w:CGFloat = contentRect.size.width
        let h:CGFloat = contentRect.size.height * 4 / 5
        return CGRectMake(x, y, w, h)
    }
   
    //功能:設定button上的titleLabel的座標和大小
    //引數1:當前按鈕的範圍(只需要大小)
    //返回值:重新設定的文字的座標和大小
    override func titleRectForContentRect(contentRect: CGRect) -> CGRect {
        
        let x:CGFloat = 0
        let y:CGFloat = contentRect.size.height * 4 / 5
        let w = contentRect.size.width
        let h = contentRect.size.height / 5
        
        return CGRectMake(x, y, w, h)
        //1.建立按鈕物件
        let btn = YTButton(frame: CGRectMake(100,100,200,220))
       
        //2.設定文字
        btn.setTitle("點我試試", forState: .Normal)
        btn.setTitleColor(UIColor.redColor(), forState: .Normal)
        btn.titleLabel?.textAlignment = .Center
        
        //3.設定圖片
        btn.setImage(UIImage.init(named: "luffy4"), forState: .Normal)
        //4.新增到介面上
        self.view.addSubview(btn)
        
        //5.新增按鈕點選事件
        btn.addTarget(self, action: "btnAction", forControlEvents: .TouchDown)
        
    }
    
    //MARK: - 按鈕點選事件
    func btnAction() {
        
        print("我就點啦!你想怎麼的?")
    }
    }
複製程式碼

##day four ##這裡主要介紹一下文字框的使用 1.文字框的建立(顏色 大小 加入到介面上)


let textField = UITextField(frame: CGRectMake(100,100,200,50))
self.view.addSubview(textField)
textField.backgroundColor = UIColor.redColor()
複製程式碼

2.文字框的一些具體內容 文字的顏色,字型的大小

textField.textColor = UIColor.brownColor()

textField.font = UIFont.systemFontOfSize(14)
複製程式碼

3.這裡還有幾個實用的方法 4.對齊方式(左對齊 右對齊 居中  注意 這裡是列舉)和佔位文字(就是框框裡面有幾個可以提醒的文字)

textField.placeholder = "請輸入賬號"

textField.textAlignment = .Center
複製程式碼

5.文字框的表面樣式設計(注意是列舉)和右邊叉叉清理按鈕(可以全部一次性清理完),左右檢視

textField.borderStyle = .RoundedRect
textField.clearButtonMode = .Always

let imageView = UIImageView(frame: CGRectMake(0,0,40,40))
imageView.image = UIImage(named: "QFImage_2016-08-24_16.45.52")

textField.leftView = imageView
//設定左檢視的顯示模式(確定什麼時候顯示,預設從不顯示)
textField.leftViewMode = .Always

let rightLabel = UILabel(frame: CGRectMake(0,0,40,40))
rightLabel.text = "你好"
textField.rightView = rightLabel
textField.rightViewMode = .Always
複製程式碼

6.設定代理 6個方法

textField.delegate = self
    //在textField將要開始編輯的時候會自動呼叫
    //引數:當前協議定義的委託
    //返回值:設定當前的textField是否可以進行編輯(預設是true)
    //1.
    func textFieldShouldBeginEditing(textField: UITextField) -> Bool{
        print("將要開始編輯")
        return true
    }
    //2.
    //當文字輸入框已經開始編輯的時候會自動呼叫這個方法
    func textFieldDidBeginEditing(textField: UITextField) {
        print(textField.text)
        print("已經開始編輯")
    }

    //3.當文字輸入框將要結束編輯的時候會自動呼叫這個方法
    //返回:設定當前的textField是否可以結束編輯(預設是true)
    func textFieldShouldEndEditing(textField: UITextField) -> Bool {
       //要求文字輸入框的文字長度要大於等於8的時候才能結束編輯
       //對將要輸入的密碼進入限定達到某個要求才能離開=============
        if textField.text?.characters.count >= 8{
            return true
        }
        return false
    }

    //4.當文字輸入框已經結束編輯的時候會自動呼叫這個方法(游標消失的時候)
    //
    //
    //
    func textFieldDidEndEditing(textField: UITextField) {
    
    }

    //5.當點選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
    }

    //6.當按鍵盤的返回按鈕的時候,會自動呼叫
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        
        print("fan")
        
        
        //收起鍵盤(結束編輯)
        //1.放棄第一響應者

        textField.resignFirstResponder()
        
        //2.直接結束指定的textField編輯
        textField.endEditing(true)
        //3.讓self.view上的所有的子檢視都結束編輯
        self.view.endEditing(true)
        
        
        return true
    }
    

複製程式碼

##day five

1.UISwitch 開關

        //1.建立開關物件
        //UISwitch:UIControl:UIView
        let sw = UISwitch(frame:CGRectMake(100,100,100,50))
        
        self.view.addSubview(sw)
        
        //核心屬性:開關狀態(預設是:關)
        //設定開關的狀態
        sw.on = true//false ->關
        sw.setOn(false, animated: true)
        
        //拿到當前的狀態
        print(sw.on)
        
        //核心方法
        //引數1:呼叫方法的物件
        //引數2;指定的事件發生後引數1要去呼叫的方法對應的selector
        //引數3:事件
        //功能:當開關的值發生改變的時候,self會去呼叫用switchAction方法
        sw.addTarget(self, action: "switchAction:", forControlEvents: .ValueChanged)
        
        //設定開關開的顏色(預設是綠色)
        sw.onTintColor = UIColor.redColor()
        //s設定開關關的邊框的顏色
        sw.tintColor = UIColor.purpleColor()
        //設定開關上滑塊的顏色
        sw.thumbTintColor = UIColor.yellowColor()
複製程式碼

2.UISlider 滑條

        //建立滑條物件
        let slider = UISlider(frame: CGRectMake(100,160,200,20))
        
        
        self.view.addSubview(slider)
        
        //核心屬性:值(滑塊的位置對應的值)
        //value;滑塊當前的位置對應的值 預設是0~1

        slider.value = 50
        //最小值和最大值
        slider.minimumValue = 0
        slider.maximumValue = 100
        //核心方法
        
        slider.addTarget(self, action: "sliderAction:", forControlEvents: .ValueChanged)
        
        //顏色屬性
        
        slider.thumbTintColor = UIColor.yellowColor()
        //新增圖片屬性
//        slider.maximumValueImage = UIImage(named: "螢幕快照 2016-08-26 上午9.02.04")
        slider.setThumbImage(UIImage(named: "luffy1"), forState: .Normal)
        //是否連續改變
//        slider.setThumbImage(UIImage(named: "luffy2"), forState: .Highlighted)
        slider.continuous = false
複製程式碼

3.UIStepper 步進器

        //1.建立步進器物件
        
        let stepper = UIStepper(frame: CGRectMake(100,200,100,50))
        
        
        self.view.addSubview(stepper)
        
        //核心屬性:值
        //當前值
        stepper.value = 1
        print(stepper.value)
        
        
        //最大值
        stepper.maximumValue = 10
        //最小值
        stepper.minimumValue = 0
        //步進(每按一下加或者減,增加/減少的值)
        stepper.stepValue = 1//步進值必須大於0
        
        
        //核心方法
        stepper.addTarget(self, action: "stepperAction:", forControlEvents: .ValueChanged)
        
        //設定值是否連續改變(按住不放的時候)
        
        stepper.continuous = false
        
        //是否重複 false -> 按住不放的時候不計數;true->按住不放的時候計數(預設)
        
        stepper.autorepeat = false
        
        //設定填充顏色
        stepper.tintColor = UIColor.redColor()
複製程式碼

4.進度條

        //1.建立進度條物件
        
        let progress = UIProgressView(frame: CGRectMake(100,300,200,20))
        
        self.view.addSubview(progress)
        
        //核心屬性
        //設定當前進度
        progress.progress = 0.5
        
        progress.setProgress(0.6, animated: true)
        
        progress.progressImage = UIImage(named: "luff1")
        
        progress.progressTintColor = UIColor.redColor()
        
        progress.tag = 100
        
複製程式碼

5.活動指示器

        //1.建立物件
        
        
        let activity = UIActivityIndicatorView(frame: CGRectMake(100,360,50,50))
        
        self.view.addSubview(activity)
        //3.想要讓活動指示器顯示,必須讓它開始動畫
        activity.startAnimating()
        //4.停止動畫 ->活動指示器酒會消失
//        activity.stopAnimating()
//        
        
        
        activity.activityIndicatorViewStyle = .WhiteLarge
        
複製程式碼

6.多段選擇器

        //1.建立多段選擇器物件
        
        //引數1:分段選擇器上的內容對應的陣列
        let segement = UISegmentedControl(items: ["海賊王","火影忍者","死神"])
        
        segement.frame = CGRectMake(100, 400, 200, 50)
        
        self.view.addSubview(segement)
        
        
        
        //核心屬性
        //每個分段上的內容
        //每個分段上的內容 ->通過建立分段選擇器的時候去設定
        //當前選中的分段的下標(從0開始)
        segement.selectedSegmentIndex = 1
        
        
        segement.addTarget(self, action: "segementAction:", forControlEvents: .ValueChanged)
        
        //拿到分段選擇器的分段數
        print(segement.numberOfSegments)
        
        segement.tintColor = UIColor.whiteColor()
複製程式碼

讓進度條跟著畫條動

    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)
    }
複製程式碼

7.UIAlertController 警報框

        //1.表單檢視
        //引數1:標題
        //引數2;
        //引數3:ActionSheet->表單,Alert ->警告框
        //
        //
        let laterController = UIAlertController(title: "標題", message: nil, preferredStyle: .Alert)
        
        //2.新增到介面
        //引數1:需要顯示的檢視控制器
        
        //引數2:風格
        
        //引數3:當前選項對應的按鈕唄點選後會執行的程式碼對應的閉包
        self.presentViewController(laterController, animated: true, completion: nil)
        
        //Destructive風格
        let okAction = UIAlertAction(title: "確定", style: .Destructive, handler: nil)
        //Cancel的風格
        let noAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil)
        
        laterController.addAction(okAction)
        laterController.addAction(noAction)
複製程式碼

8.UITextView 文字框

 var textView = UITextView()
     // - textView
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        //1.建立textView物件
        
        // UITextView:UIScrollView:UiView
        textView = UITextView(frame: CGRectMake(100, 100, 200, 70))
        self.view.addSubview(textView)
        
        textView.backgroundColor = UIColor.redColor()
        //text屬性
        textView.text = "dfdffddfd"
        //5.設定是否可以選中
        textView.selectable = true
        
        //6.是否可以選中刪除所有
        textView.clearsOnInsertion = true
        //其他的屬性和方法參考UITextField
        
    }
    
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        //獲取選中的範圍
        
        let range = textView.selectedRange
        print(range)
    }

複製程式碼