Note 19 控件,手勢,PickerView與AlertController

控件

一.都是繼承UIControl ,可以addTarget()

forControlEvents: .ValueChanged
1.UISegmentedControl分段控件

提供單選能力
momentary(Bool) 是否記錄狀態(tài)

2.UISlide滑動條

maxmumValue/min....最大值,最小值
value 當(dāng)前值
continuous 是否連續(xù)觸發(fā)

3.Switch 開關(guān)

on (Bool) 是否是開啟的狀態(tài)

4.UIPageControl 分頁
與上面的類似

二.PickerView :

與tableview類似

      let pickerView = UIPickerView(frame: CGRect(x: 0, y: 100, width: self.view.bounds.size.width, height: 200))
        pickerView.dataSource = self
        pickerView.delegate = self
        self.view.addSubview(pickerView)

pickerView:
1.pickerViewDatasource
func 多少comp
func 多少row
2.pickerViewDelegate
func title
func pickerView view可以重用

方法有的不是必須實現(xiàn)

    //列數(shù)
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 3
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return 4
    }
    
//    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
//        return "a"
//    }
    
    //可以重用
    func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView {
        if let v = view {
            print("reusing")
            v.backgroundColor = UIColor.redColor()
            return v
        }
        else {
            print("no reuse")
            let greenView = UIView()
            greenView.backgroundColor = UIColor.greenColor()
            return greenView
        }
    }
    
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        print("\(component): \(row)")
    }

UIDatePicker 與 pickerview類似,但是實現(xiàn)起來簡單

        let datePicker = UIDatePicker(frame: CGRect(x: 0, y: 300, width: self.view.bounds.size.width, height: 200))
//        datePicker.datePickerMode = .Date
        datePicker.datePickerMode = .Time
        datePicker.addTarget(self, action: #selector(didChange(_:)), forControlEvents: .ValueChanged)
        self.view.addSubview(datePicker)
        
         func didChange(sender: UIDatePicker) {
        print(sender.date) //NSDate
    }
DatePick:
        let datePick = UIDatePicker(frame: CGRect(x: 0, y: 300, width: self.view.frame.width, height: 100))
        datePick.addTarget(self, action: #selector(didDate(_:)), forControlEvents: .ValueChanged)
        datePick.datePickerMode = .DateAndTime
        //.Time//時:分:上午/下午
        //.Date//日期:時:分//.DateAndTime
        //日期:時:分:上午/下午 
        //.CountDownTimer //小時:分鐘

三.UIWebView

        let webView = UIWebView(frame: self.view.bounds)
        webView.delegate = self
        
//        let url = NSURL(string: "http://ifeng.com")
//        let request = NSURLRequest(URL: url!)
//        webView.loadRequest(request)
        
//        let htmlStr = "<h1>這是一個標(biāo)題</h1>"
//        webView.loadHTMLString(htmlStr, baseURL: nil)
        
        //1. 加載本地網(wǎng)頁
        let url = NSBundle.mainBundle().URLForResource("index", withExtension: "html")
//        let request = NSURLRequest(URL: url!)
//        webView.loadRequest(request)
        
        //2. 
        let data = NSData(contentsOfURL: url!)
        webView.loadData(data!, MIMEType: "text/html", textEncodingName: "utf-8", baseURL: NSURL())
        
        self.view.addSubview(webView)
    //1. 開始加載的時機(jī)
    //2. 可以過濾網(wǎng)址
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        let path = request.URL?.absoluteString
        
        print(path!)
        if path!.containsString("baidu.com") {
            return false
        }
        
        return true
    }
    
    func webViewDidStartLoad(webView: UIWebView) {
        //
    }
    
    func webViewDidFinishLoad(webView: UIWebView) {
        //如果需要操作網(wǎng)頁,必須等加載完成
        let res = webView.stringByEvaluatingJavaScriptFromString("document.getElementsByTagName('img')")
        print(res)
        
        //w3school.com.cn
    }
    
    func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
        
    }

這個控件還沒怎么使用暫時先mark下來

四UI( )GestureRecognizer

tap,screenEdgePanges,swipe,longPress等

        let tap = UITapGestureRecognizer(target: self, action: #selector(didTap(_:)))
        self.view.addGestureRecognizer(tap)
       
        let screenGes = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(scGes(_:)))
        self.view.addGestureRecognizer(screenGes)
        screenGes.edges = UIRectEdge.Left
        
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tap(_:)))
        self.view.addGestureRecognizer(tapGesture)
        
        let swipe1 = UISwipeGestureRecognizer(target: self, action: #selector(swipe01(_:)))
        swipe1.direction = .Down
        self.view.addGestureRecognizer(swipe1)
        
        let longPress = UILongPressGestureRecognizer(target: self, action: #selector(swipe02(_:)))
        self.view.addGestureRecognizer(longPress)

五UIAlertController

繼承ViewController,也是一個頁面,所以顯示可以用present

        let alCtrl = UIAlertController(title: "警告", message: "別瞎點", preferredStyle: .Alert)
        let action1 = UIAlertAction(title: "返回", style: .Cancel) { (action) in
            let textfield = alCtrl.textFields![0]
            print(textfield.text)
        }
        alCtrl.addAction(action1)
        alCtrl.addTextFieldWithConfigurationHandler { (textf) in
        }
        self.presentViewController(alCtrl, animated: true, completion: nil)

AlertController頁面里的輸入框輸入的文字可以通過Action的閉包傳回來,這是使用輸入文字的一個時機(jī)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 廢話不多說,直接上干貨 ---------------------------------------------...
    小小趙紙農(nóng)閱讀 3,655評論 0 15
  • { 11、核心動畫 需要簽協(xié)議,但是系統(tǒng)幫簽好 一、CABasicAnimation 1、創(chuàng)建基礎(chǔ)動畫對象 CAB...
    CYC666閱讀 1,702評論 2 4
  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多,會對里面所有的內(nèi)容的引用計數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,730評論 1 14
  • 閩菜是中國八大菜系之一,歷經(jīng)中原漢族文化和閩越族文化的混合而形成。閩菜發(fā)源于福州,以福州菜為基礎(chǔ),后又融合閩東、閩...
    小鬼鬼li閱讀 961評論 0 2
  • 生活不止眼前的茍且,但又有多少人茍且著只為了能繼續(xù)生活下去。 聽過不只一個朋友抱怨著,工作太累,事業(yè)不...
    一莫佳閱讀 436評論 0 0

友情鏈接更多精彩內(nèi)容