iOS之UIAlertView點(diǎn)擊窗口之外區(qū)域關(guān)閉

彈出一個UIAlertView,然后點(diǎn)擊窗口之外的區(qū)域來關(guān)閉UIALertView,代碼如下:

- (IBAction)showAlert:(id)sender {  
  
  alert = [[UIAlertView alloc] initWithTitle:@"測試"  
                                     message:@"點(diǎn)擊四周的區(qū)域我就消失"  
                                    delegate:nil  
                           cancelButtonTitle:@"確定"  
                           otherButtonTitles:nil];  
  [alert show];  
  recognizerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapBehind:)];  
  
  [recognizerTap setNumberOfTapsRequired:1];  
  recognizerTap.cancelsTouchesInView = NO;   
  [[UIApplication sharedApplication].keyWindow addGestureRecognizer:recognizerTap];  
}  
  
- (void)handleTapBehind:(UITapGestureRecognizer *)sender {  
  if (sender.state == UIGestureRecognizerStateEnded){  
    CGPoint location = [sender locationInView:nil];  
    if (![alert pointInside:[alert convertPoint:location fromView:alert.window] withEvent:nil]){  
      [alert.window removeGestureRecognizer:sender];  
      [alert dismissWithClickedButtonIndex:0 animated:YES];  
    }  
  }  
}  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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