移动UIImageView时检测屏幕边缘

时间:2011-03-13 16:42:23

标签: iphone

我目前有一个UIImageView,我可以在视图中移动/拖动。

当图像移动时如何检测屏幕边缘并停止图像移出屏幕视图?

1 个答案:

答案 0 :(得分:2)

您可以使用

在(最外层)视图的坐标中找到UIImageView的矩形
CGRect r = [iv convertRect:iv.bounds toView:self.view];

然后检查r是否越界,例如像这样:

CGRect i = CGRectIntersect(r,self.view.bounds);

if ( CGRectIsNull(i) )
{
    NSLog(@"way out of bounds");
} else if ( !CGRectEqualToRect(i,r) ) {
    NSLog(@"partly out of bounds");
} else {
    NSLog(@"self.view envelopes imageview");
}

当然,这应该放在你的拖动代码中,NSLog()语句被替换为适当的处理(例如,只更新最后一种情况下的位置,或者如果需要,将矩形转换回视图)< / p>