第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

UIButton長(zhǎng)按事件

UIButton長(zhǎng)按事件

iOS
函數(shù)式編程 2019-12-20 10:07:30
我想模仿長(zhǎng)按按鈕,該怎么辦?我認(rèn)為需要一個(gè)計(jì)時(shí)器。我知道了,UILongPressGestureRecognizer但是我該如何利用這種類型呢?
查看完整描述

3 回答

?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以通過創(chuàng)建UILongPressGestureRecognizer實(shí)例并將其附加到按鈕開始。


UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];

[self.button addGestureRecognizer:longPress];

[longPress release];

然后實(shí)現(xiàn)處理手勢(shì)的方法


- (void)longPress:(UILongPressGestureRecognizer*)gesture {

    if ( gesture.state == UIGestureRecognizerStateEnded ) {

         NSLog(@"Long Press");

    }

}

現(xiàn)在,這將是基本方法。您還可以設(shè)置印刷機(jī)的最短持續(xù)時(shí)間以及允許的錯(cuò)誤數(shù)量。還要注意的是,如果您在識(shí)別出手勢(shì)之后會(huì)多次調(diào)用該方法,那么如果您想在其結(jié)束時(shí)執(zhí)行某些操作,則必須檢查其狀態(tài)并進(jìn)行處理。


查看完整回答
反對(duì) 回復(fù) 2019-12-20
?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

作為可接受答案的替代方法,可以使用Interface Builder在Xcode中非常輕松地完成此操作。


只需將“ 長(zhǎng)按手勢(shì)識(shí)別器”從對(duì)象庫中拖放到想要長(zhǎng)按動(dòng)作的按鈕頂部即可。


接下來,將剛添加的“ 長(zhǎng)按手勢(shì)識(shí)別器 ”中的“動(dòng)作”連接到視圖控制器,選擇類型為“發(fā)件人”的發(fā)件人UILongPressGestureRecognizer。在IBAction使用該代碼的代碼中,該代碼與已接受答案中建議的代碼非常相似:


在Objective-C中:


if ( sender.state == UIGestureRecognizerStateEnded ) {

     // Do your stuff here

}

或在Swift中:


if sender.state == .Ended {

    // Do your stuff here

}

但我必須承認(rèn),嘗試后,我更喜歡@shengbinmeng提出的建議,以作為已接受答案的注釋,該建議使用:


在Objective-C中:


if ( sender.state == UIGestureRecognizerStateBegan ) {

     // Do your stuff here

}

或在Swift中:


if sender.state == .Began {

    // Do your stuff here

}

區(qū)別在于,使用Ended,您可以在抬起手指時(shí)看到長(zhǎng)按的效果。使用Began,您會(huì)在系統(tǒng)抓住長(zhǎng)按后立即看到長(zhǎng)按的效果,甚至在將手指從屏幕上抬起之前也是如此。


查看完整回答
反對(duì) 回復(fù) 2019-12-20
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

接受答案的Swift版本

我對(duì)using進(jìn)行了其他修改,UIGestureRecognizerState.Began而不是.Ended因?yàn)檫@可能是大多數(shù)用戶自然希望的。嘗試一下它們,然后自己看看。


import UIKit


class ViewController: UIViewController {


    @IBOutlet weak var button: UIButton!


    override func viewDidLoad() {

        super.viewDidLoad()


        // add gesture recognizer

        let longPress = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:)))

        self.button.addGestureRecognizer(longPress)


    }


    func longPress(gesture: UILongPressGestureRecognizer) {

        if gesture.state == UIGestureRecognizerState.began {

            print("Long Press")

        }

    }


    @IBAction func normalButtonTap(sender: UIButton) {

        print("Button tapped")

    }

}


查看完整回答
反對(duì) 回復(fù) 2019-12-20
  • 3 回答
  • 0 關(guān)注
  • 1141 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)