如果我在容器/父视图中有n个视图,我如何检查是否有任何子视图扩展到父视图?
如果我有1个子视图,我可以执行以下操作 CGRectGetMaxY(subView.frame)> CGRectGetMaxY(containerView.bounds)
答案 0 :(得分:0)
NSArray内置了一些非常酷的东西来获取数组中的平均值/最大值/等值。你想要做的是:
NSNumber *maxY = [subviewArray valueForKeyPath:@"@max.maxY"];
但是,由于UIView
默认情况下没有maxY属性,因此无效。但不要担心!我们可以通过扩展UIView来添加它:
// UIView+Extensions.h
@interface UIView(Extensions)
- (CGFloat)maxY;
@end
// UIView+Extensions.m
@implementation UIView(Extensions)
- (CGFloat)maxY
{
return CGRectGetMaxY(self.frame);
}
@end
现在,您可以安全地使用[subviewArray valueForKeyPath:@"@max.maxY"];
来获取所有子视图的最大Y值。