1. 程式人生 > >IOS初學-簡單的手勢操作(單點,雙擊,長按)

IOS初學-簡單的手勢操作(單點,雙擊,長按)

手勢之前先來個旋轉。其它的簡單動畫同理

對檢視進行旋轉操作

func test8() {
        let view1=UIView(frame: CGRect(x: 50, y: 150, width: 200, height: 50));
        view1.backgroundColor=UIColor.brown;
        self.view.addSubview(view1);
        
        //建立一個放射變換變數  可用於平移 旋轉 縮放 換路徑   圖形上下文
        var transform=view1.transform;
        //旋轉 45度
        transform=transform.rotated(by: 3.14/4);
        view1.transform=transform;
    }

使用手勢功能給檢視新增點選事件實現互動

func test9() {
        let  imageView=UIImageView(frame: CGRect(x: 32, y: 80, width: 256, height: 256));
        imageView.image=UIImage(named: "Pic4");
        //開啟檢視物件的互動功能
        imageView.isUserInteractionEnabled=true;
        self.view.addSubview(imageView);
        
        //建立手勢檢測類  抽象類  定義了所有手勢的基本行為。有6個子類
        let guesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.test9OnClick));
        imageView.addGestureRecognizer(guesture);
    }
    @objc func test9OnClick(){
        //建立一個彈窗
        let alertView = UIAlertController(title: "title", message: "test9的點選事件", preferredStyle: UIAlertControllerStyle.alert);
        //為視窗新增一個按鈕。用來關閉彈窗
        let okAction=UIAlertAction(title: "關閉視窗", style:.default,handler:nil);
        alertView.addAction(okAction);
        self.present(alertView,animated: true,completion: nil);
        
        
    }

使用手勢功能給檢視新增長按事件實現互動

func test10() {
        let view = UIImageView(frame: CGRect(x: 32, y: 80, width: 256, height: 256))
        view.image=UIImage(named: "Pic5");
        view.isUserInteractionEnabled=true;
        self.view.addSubview(view);
        //長按手勢物件
        let guesture = UILongPressGestureRecognizer(target: self, action: #selector(ViewController.test10LongOnClick));
        view.addGestureRecognizer(guesture);
        
    }
    @objc func test10LongOnClick(guesture:UILongPressGestureRecognizer){
        if (guesture.state==UIGestureRecognizerState.began) {
            let dialog=UIAlertController(title: "標題", message: "內容", preferredStyle: UIAlertControllerStyle.alert);
            let okAction=UIAlertAction(title: "ok", style: .default, handler: nil);
            dialog.addAction(okAction);
            self.present(dialog,animated: true,completion: nil);
        }
    }

手勢雙擊操作

func test11()  {
        let view = UIImageView(frame: CGRect(x: 32, y: 80, width: 256, height: 256))
        view.image=UIImage(named: "Pic1");
        view.isUserInteractionEnabled=true;
        self.view.addSubview(view);
        
        let guesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.test11DoubleOnClick));
        //設定點選次數
        guesture.numberOfTapsRequired=2;
        //設定為單次雙擊事件
        guesture.numberOfTouchesRequired=1
        view.addGestureRecognizer(guesture);
        
        
    }
    @objc func test11DoubleOnClick(){
        let alert = UIAlertController(title: "標題", message: "content", preferredStyle: UIAlertControllerStyle.alert);
        alert.addAction(UIAlertAction(title: "ok", style: .default, handler: nil));
        self.present(alert,animated: true,completion: nil);
        
    }