UIImageView完全包含另一个图像视图

时间:2014-04-29 14:18:01

标签: ios uiimageview

我有一个图像视图,它是较大图像视图的子视图。子视图可以在较大的图像视图周围移动,但我希望能够检测大视图的边缘,以便子视图不能移动到它之外,但我不知道如何完成它。

1 个答案:

答案 0 :(得分:2)

在更新子视图的框架时(顺便说一下,它不需要是子视图,但下面的坐标逻辑假设如此),检查约束

CGRect intersection = CGRectIntersection(subview.frame, superview.bounds);
BOOL fullyContained = CGSizeEqualToSize(intersection.size, subview.size);

更为紧凑,正如@ZevEisenberg所提出的那样:

BOOL fullyContained = CGRectContainsRect(subview.frame, superview.bounds);

如果两个视图属于同一个超级视图,只要视觉包含的视图堆叠在顶部(在superview的子视图阵列中的较大图像视图之后出现)就可以了,那么更容易:

BOOL fullyContained = CGRectContainsRect(subview.frame, superview.frame);