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

时间:2011-09-01 01:13:04

标签: xcode events uiview touch

我有一个自定义的UIView,持有人。

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

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

1 个答案:

答案 0 :(得分:5)

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

代码,未经测试:

// 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
}