關(guān)于iOS的長(zhǎng)按的一些狀態(tài)

????????去年做過(guò)一個(gè)畫(huà)圖軟件,需要在手機(jī)上進(jìn)行繪制草圖相關(guān)操作。其中一個(gè)就是長(zhǎng)按進(jìn)行繪制線段矩形等圖形,在此拿出來(lái)和大家分享一下。


1、創(chuàng)建一個(gè)長(zhǎng)按手勢(shì),并添加到相應(yīng)view上

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

longPress.minimumPressDuration=0.2;

[recordImageViewaddGestureRecognizer:longPress];


2、創(chuàng)建相應(yīng)的長(zhǎng)按觸發(fā)方法(不創(chuàng)建的話,長(zhǎng)按的時(shí)候程序會(huì)crash)

- (void)longClick:(UILongPressGestureRecognizer *)longPress

{

? ? EM

? ? UIImageView *recordImageView = (UIImageView *)longPress.view;

? ? switch (longPress.state) {

? ? ? ? case UIGestureRecognizerStateBegan:

? ? ? ? {

? ? ? ? ? ? //長(zhǎng)按開(kāi)始

? ? ? ? ? ? recordImageView.transform = CGAffineTransformMakeScale(1.15, 1.15);

? ? ? ? ? ? [em startRecordWith:em.filePath];

? ? ? ? ? ? [recordImageView startAnimating];

? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? case UIGestureRecognizerStateChanged:

? ? ? ? {

? ? ? ? ? ? //移動(dòng)中

? ? break;

? ? ? ? }

? ? ? ? case UIGestureRecognizerStateEnded:

? ? ? ? {

? ? ? ? ? ? //長(zhǎng)按結(jié)束

? ? ? ? ? ? recordImageView.transform = CGAffineTransformMakeScale(1.0, 1.0);

? ? ? ? ? ? [em stopRecordWith:em.filePath];

? ? ? ? ? ? [recordImageView stopAnimating];

? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? default:

? ? ? ? ? ? break;

? ? }

}

????????長(zhǎng)按當(dāng)然還有其他的狀態(tài),但是平時(shí)開(kāi)發(fā)中基本上就用到這3種狀態(tài)。需要了解具體的,就去蘋(píng)果的官方文檔中了解吧。小編水平有限,如有疏漏之處請(qǐng)?jiān)谙旅媪粞?,我?huì)虛心采納您的意見(jiàn)。

ps:這里說(shuō)一下switch,每個(gè)case中一定break,不然還會(huì)走下面的狀態(tài),小編經(jīng)常會(huì)犯這種錯(cuò)

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

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

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