UIScrollview 上的點(diǎn)擊背景退出編輯狀態(tài)

為 UIScrollView 添加點(diǎn)擊事件,從而實(shí)現(xiàn) scrollview 上的點(diǎn)擊背景退出編輯狀態(tài)。

直接代碼呈上:

一、先要支持協(xié)議 UIGestureRecognizerDelegate

二、為你需要添加點(diǎn)擊事件的 scrollview 添加點(diǎn)擊手勢(shì)

// 對(duì) srcollView 添加點(diǎn)擊響應(yīng)
    UITapGestureRecognizer *sigleTapRecognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickBackView)];
    sigleTapRecognizer.delegate=self;
    sigleTapRecognizer.numberOfTapsRequired = 1;

    [_baseScrollView addGestureRecognizer:sigleTapRecognizer];

三、點(diǎn)擊后的處理 ----- 這里是點(diǎn)擊 scrollview 上空白處才進(jìn)行處理

// 點(diǎn)擊背景取消所有編輯狀態(tài)
-(void)clickBackView
{
    NSLog(@" 點(diǎn)了一下背景 ");
    [_baseScrollView endEditing:YES];
}

#pragma mark UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    // 輸出點(diǎn)擊的 view 的類(lèi)名
    NSLog(@"%@", NSStringFromClass([touch.view class]));
   
    // 若為 ScrollView 的點(diǎn)擊事件才響應(yīng),scrollview 上的 UIButton、UILabel 啥的點(diǎn)了也不會(huì)進(jìn)哦
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UIScrollView"]) {
        return YES;
    }
    return  NO;

}
?著作權(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)容