UItouch啼县、手勢(shì)集合、自定義圖片按鈕

UItouch沸久、手勢(shì)集合谭羔、自定義圖片按鈕

UItouch

//MARK: - UITouch
extension ViewController{

    //1.每次開始觸摸的時(shí)候會(huì)自動(dòng)調(diào)用
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
     
        //print("開始觸摸:\(touches)")
        
        //參數(shù)1:touches->在多個(gè)手指同時(shí)觸摸屏幕的時(shí)候只能獲取到一個(gè)觸摸對(duì)象
        //拿到當(dāng)前的觸摸對(duì)象
        let touch = touches.first
        //拿到當(dāng)前觸摸點(diǎn)的位置
        //參數(shù):計(jì)算坐標(biāo)的相對(duì)視圖
        let location = touch?.locationInView(self.view)
        print(location)
        
        //參數(shù)2:event -> 可以拿到多個(gè)觸摸對(duì)象
        let allTouches = event?.allTouches()
        print("ALL:\(allTouches?.count)")
        //遍歷拿到每個(gè)觸摸對(duì)象
        for item in allTouches! {
        
           print(item.locationInView(self.view))
         
        }
        
        
        //設(shè)置球的坐標(biāo),讓其出現(xiàn)在開始觸摸的位置
        self.ball.center = location!
        
        
    }
    
    //2.每次觸摸結(jié)束的時(shí)候會(huì)自動(dòng)調(diào)用
    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        print("觸摸結(jié)束")
    }
    
    //3.手指在屏幕上移動(dòng)的時(shí)候會(huì)實(shí)時(shí)調(diào)用
    override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        //拿到移動(dòng)過程中的坐標(biāo)點(diǎn)
        let touch = touches.first
        let loctaion = touch?.locationInView(self.view)
        self.ball.center = loctaion!
        
        print("移動(dòng)")
    }
  

手勢(shì)集合

手勢(shì)的添加步驟
 //1.創(chuàng)建點(diǎn)擊手勢(shì)對(duì)象
        //UIGestureRecognizer是所有的手勢(shì)的父類
        //參數(shù)1:調(diào)用方法的對(duì)象
        //參數(shù)2:方法對(duì)應(yīng)的選擇器 -> 這個(gè)方法如果帶參只能帶一個(gè)參數(shù)麦向,參數(shù)的實(shí)參就是當(dāng)前創(chuàng)建的點(diǎn)擊手勢(shì)對(duì)象
        //點(diǎn)擊手勢(shì)發(fā)生的時(shí)候讓參數(shù)1調(diào)用參數(shù)2中的方法
        let tap = UITapGestureRecognizer.init(target: self, action: "tapAction:")
        //核心屬性:點(diǎn)擊次數(shù)(默認(rèn)是1->單擊)
        tap.numberOfTapsRequired = 2  //雙擊
        
        
        //2.將點(diǎn)擊手勢(shì)添加到視圖上(要求:添加手勢(shì)的視圖必須可以進(jìn)行用戶交互)
        //self.view.addGestureRecognizer(tap)
        
        //3.打開圖片的用戶交互瘟裸,并且添加點(diǎn)擊手勢(shì)
        self.imageView.userInteractionEnabled = true
        //注意:同一個(gè)手勢(shì)對(duì)象,只能被添加到一個(gè)視圖
        self.imageView.addGestureRecognizer(tap)

其他幾種手勢(shì)名稱以及核心屬性

//停止UIView動(dòng)畫
        self.imageView.layer.removeAllAnimations()
 //讓形變清空
        self.imageView.transform = CGAffineTransformIdentity
 //所有的手勢(shì)類都一個(gè)狀態(tài)屬性诵竭,用來獲取手勢(shì)的開始和結(jié)束狀態(tài)
       longPress.state == .Began
       longPress.state == .Ended
===================================
//2長(zhǎng)按手勢(shì)
longPress = UILongPressGestureRecognizer
//核心屬性:長(zhǎng)按時(shí)間
        longPress.minimumPressDuration = 1
//3滑動(dòng)手勢(shì)
        swipe =  UISwipeGestureRecognizer
//核心屬性:滑動(dòng)方向(默認(rèn)是右滑->從左往右滑)
        swipe.direction = .Right
 //4拖動(dòng)手勢(shì)
        pan = UIPanGestureRecognizer
//核心屬性:在指定視圖上的位移
        let translation = pan.translationInView(self.view)
//5縮放手勢(shì)
        pinch = UIPinchGestureRecognizer
//.核心屬性:縮放比
        let scale = pinch.scale
//6旋轉(zhuǎn)手勢(shì)
        rotationG = UIRotationGestureRecognizer
//核心屬性:旋轉(zhuǎn)角度
        let rotation = rotationG.rotation
      

創(chuàng)建圖片按鈕

建一個(gè)繼承UIImageVIew的類话告,向BTu一樣給圖片添加一個(gè)事件的方法,然后創(chuàng)建圖片的時(shí)候就可以通過這個(gè)類卵慰,就可以調(diào)用事件的方法了沙郭,就和按鈕一樣功能了

enum YTControlEvent {
    case TouchDown  //-->touchesDegan
    case TouchUpInside //-->touchesEnded
}

class YTImageView: UIImageView {
    //MARK: -屬性
    var target:AnyObject? = nil
    var action:Selector? = nil
    var event:YTControlEvent? = nil
    
    //MARK: - 方法
    //保存target、action和controlEvent的值
    func addTarget(target: AnyObject?, action: Selector, forControlEvent controlEvent: YTControlEvent){
    
        //打開用戶交互
        self.userInteractionEnabled = true
        
        //保存對(duì)象和事件
        self.target = target
        self.action = action
        self.event = controlEvent
    }
    
    
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        if self.event == YTControlEvent.TouchDown {
            self.target?.performSelector(self.action!, withObject: self)
        }
        
    }
    
    
    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        if self.event == YTControlEvent.TouchUpInside {

            self.target?.performSelector(self.action!, withObject: self)
        }
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末裳朋,一起剝皮案震驚了整個(gè)濱河市病线,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鲤嫡,老刑警劉巖送挑,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異暖眼,居然都是意外死亡惕耕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門诫肠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來司澎,“玉大人,你說我怎么就攤上這事栋豫〖钒玻” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵丧鸯,是天一觀的道長(zhǎng)蛤铜。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么昂羡? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任絮记,我火速辦了婚禮,結(jié)果婚禮上虐先,老公的妹妹穿的比我還像新娘怨愤。我一直安慰自己,他們只是感情好蛹批,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布撰洗。 她就那樣靜靜地躺著,像睡著了一般腐芍。 火紅的嫁衣襯著肌膚如雪差导。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天猪勇,我揣著相機(jī)與錄音设褐,去河邊找鬼。 笑死泣刹,一個(gè)胖子當(dāng)著我的面吹牛助析,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椅您,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼外冀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了掀泳?” 一聲冷哼從身側(cè)響起雪隧,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎员舵,沒想到半個(gè)月后脑沿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡固灵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年捅伤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巫玻。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖祠汇,靈堂內(nèi)的尸體忽然破棺而出仍秤,到底是詐尸還是另有隱情,我是刑警寧澤可很,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布诗力,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏苇本。R本人自食惡果不足惜袜茧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓣窄。 院中可真熱鬧笛厦,春花似錦、人聲如沸俺夕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)劝贸。三九已至姨谷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間映九,已是汗流浹背梦湘。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留件甥,地道東北人践叠。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嚼蚀,于是被迫代替她去往敵國(guó)和親禁灼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容