超出父控件怎么才能点击

首先:我们先总结一下控件不能交互的原因有哪些?

// 1.控件的用户交互被关闭了! -> userInteractionEnable = NO[用户交互]!

// 2.控件隐藏了! hidden = YES;

// 3.控件的透明度 alpha <= 0.01;
    
// 4.父控件的用户交互关了! -> 子控件也就不能响应了!

// 5.如果子控件,超出了父控件的范围! -> 超出父控件区域的部分,不能接受用户交互!
    
// 6.UIImageView默认是关闭用户交互的!添加需要做事情的控件时需要打开用户交互!

所以,当一个控制不能交互时,我们需要分析一下:

// 1.看当前控件的用户交互是否被关闭?
// 2.看当前控件的父控件用户交互是否被关闭?
// 3.看当前控件显示的位置,是否超出了父控件!
// 4.看当前控件的父控件,是否超出了父控件的范围!

问题来了:如要一个控件超出了父控件的范围,超出部分是不能点击的,那么我们怎么办才能让其能点击呢,如下图:

不卖关子了,我们先来说说解决方法,其实很简单,重写一个方法即可:

1     override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
2         // composeBtn就是+号按钮
3         return composeBtn.frame.contains(point)
4     }

为什么呢能解决这个问题呢,是“任性的小丸子”帮了我,

引用地址:http://www.cnblogs.com/WZLpq-home/p/5616309.html

谢谢小丸子。

原文地址:https://www.cnblogs.com/panda1024/p/6171795.html