IOS初學-簡單的手勢操作(單點,雙擊,長按)
阿新 • • 發佈:2018-11-12
手勢之前先來個旋轉。其它的簡單動畫同理
對檢視進行旋轉操作
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);
}