美文网首页
自定义Alert和系统Alert或ActionSheet或Key

自定义Alert和系统Alert或ActionSheet或Key

作者: sky_storming | 来源:发表于2019-03-15 14:35 被阅读0次
    • 问题描述:
      需求通知弹窗要自定义,在测试的时候发现的问题:
      第一种情况,如果有系统Alert或者ActionSheet,正好在这时有通知消息推送过来,自定义弹窗覆盖在系统的弹窗上,这时点击任何地方自定义弹窗都没有点击事件响应(自定义弹窗加在window上的)。
      第二种情况,如果自定义弹窗和键盘同时出现,键盘在上自定义弹窗在下,点击弹窗无响应,键盘也下不去。这两种情况都导致卡死了。

    • 解决办法:

    1. 自定义弹窗的按钮点击事件不添加addTarget,而是通过override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView?方法,确定点击的是自定义弹窗的按钮,调用按钮相关事件方法。这个方法一般会走两次,需要一个flag标记一下,调用方法时只走一次。
    2. 弹窗弹出前让键盘失去第一响应。

    相关文章

      网友评论

          本文标题:自定义Alert和系统Alert或ActionSheet或Key

          本文链接:https://www.haomeiwen.com/subject/kajlmqtx.html