Note1:iOS开发笔记

1.重写hitTest方法,干预iOS事件传递过程

如下所示,view上有一个button,button一半的frame在父类view bounds之外, 按照iOS系统默认的处理逻辑, 如果点击按钮上半部分,则按钮不会响应时间,如果点击下半部分才行, 要想让点击上半部分一样相应事件,则需要干预事件的传递过程,如下代码所示. 判断事件发生的point在button上面,则让button去响应事件即可.

override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        let btnPoint = self.convert(point, to: navigationButton)
        if navigationButton.point(inside: btnPoint, with: event) {
            return navigationButton
        }else{
            return super.hitTest(point, with: event)
        }
    }

2.清空WKWebView的历史纪录

项目需求需要清空webView的历史纪录,要不然只能使用两个webView, 按理说应该是一个就能解决的, 用两个心里有点不爽. 百度两个多小时找不到可用的方法, 最终在stackoverflow上面找到一种解决方案, 使用webWKWebView的私有方法, 代码如下所示:

answer in stackoverflow

webView.backForwardList.perform(Selector(("_removeAllItems")))

猜你喜欢

转载自www.cnblogs.com/dev-walden/p/9243626.html