如何测试一个UIView是否被另一个UIView触及?

Mah*_*hir 0 events xcode touch uiview

我有一个定制的UIView,持有人.

我有另一个来自不同类的自定义UIView,该实例名为letter.

当信件触及持有人时,我希望持有人回复.

Tim*_*Tim 5

您可以检查两个视图的帧的交集是否为空.使用frameUIView类上的方法获取每个视图的CGRect框架,然后调用CGRectIntersection以查找矩形的重叠区域(如果有).如果它们没有触摸,则交集将是空矩形(即将返回true CGRectIsNull).

代码,未经测试:

// Given UIView * letter, * holder:
CGRect letterFrame = [letter frame];
CGRect holderFrame = [holder frame];
CGRect intersection = CGRectIntersection(letterFrame, holderFrame);
if(CGRectIsNull(intersection)) {
    // Not touching yet - null intersection
} else {
    // Touching! Do something here
}
Run Code Online (Sandbox Code Playgroud)