我目前有一个UIImageView,我可以在视图中移动/拖动。
当图像移动时如何检测屏幕边缘并停止图像移出屏幕视图?
答案 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>