美文网首页
扩大视图热区范围

扩大视图热区范围

作者: iOneWay | 来源:发表于2019-06-15 15:08 被阅读0次

扩大UIbutton的点击范围,需要重写方法两个方法中的任意一个即可
1,override open func point(inside point: CGPoint, with event: UIEvent?) -> Bool
2, override open func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView?


extension UIButton {
    
    struct hitTestKey {
        static let hitTestEdgeInsetsKey = UnsafeRawPointer.init(bitPattern: "hitTestEdgeInsetsKey".hashValue)
    }
    
    var hitTestEdgeInsets: UIEdgeInsets {
        set {
            objc_setAssociatedObject(self, hitTestKey.hitTestEdgeInsetsKey!, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY)
        }
        
        get {
            if let rs = objc_getAssociatedObject(self, hitTestKey.hitTestEdgeInsetsKey!) as?  UIEdgeInsets {
                return rs
            }
            return UIEdgeInsets.init(top: 0, left: 0, bottom: 0, right: 0)
        }
    }
    
    
    override open func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        let rect = self.bounds.inset(by: self.hitTestEdgeInsets)
        print("event")
        if rect.contains(point) {
            return self
        }else {
            return nil
        }
    }
    
    override open func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        let rect = self.bounds.inset(by: self.hitTestEdgeInsets)
        print("inside")
        return rect.contains(point)
    }
}

相关文章

  • 扩大视图热区范围

    扩大UIbutton的点击范围,需要重写方法两个方法中的任意一个即可1,override open func po...

  • 理解iOS的事件传递

    理解事件传递 点是否落在目标视图上 如果需要扩大目标视图的点击范围(热区),则需要触碰的点是在在目标视图的父视图范...

  • 扩大控件点击范围

    在实际开发中,会遇到有些UI比较小,控件占用 的控件小,用户点击不到,那么需要手动扩大控件的点击范围,使其热区扩大

  • 扩大UIButton的点击区域

    创建一个UIButton的类别添加到项目中 在需要扩大按钮的点击范围处调用 注意:按钮扩大的范围必须在父视图内,超...

  • iOS UIbutton扩大热区

    Apple的iOS人机交互设计指南中指出,按钮点击热区应不小于44x44pt,否则这个按钮就会让用户觉得“很难用”...

  • 扩大UIButton点击热区

    刚才加的iOS群分享了一份OC版本的代码,大概看了一下觉得改成Swift3.0的也很简单 于是就花几分钟动手改了一...

  • UIButton动态扩大热区大小

    前言 使用UIButton的时候设置size的时候热区就固定了,有的时候热区的大小特别的小的时候特别难点到,特别是...

  • 钢板中合金元素对Fe-Fe3C相图的影响体现如下

    1. 对奥氏体和铁素体存在范围的影响 扩大或缩小γ相区的元素均同样扩大或缩小Fe-Fe3C相图中的γ相区, 且同样...

  • 增加UIButton热区(响应范围)

    button太小,想增加其可点击区域?要么就把按钮本身设置的大一些,要么增大其可以响应的区域。 采用继承的方式,重...

  • ios 解决按钮过小点击不灵敏的问题

    重写uibutton的方法,扩大点击热区 - (BOOL)pointInside:(CGPoint)point w...

网友评论

      本文标题:扩大视图热区范围

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