Ios 在子视图添加超出范围时动态调整父视图的大小

Ios 在子视图添加超出范围时动态调整父视图的大小,ios,objective-c,uiview,Ios,Objective C,Uiview,上面说明childView的代码是在parentView绑定之外的位置添加到parentView中的。我是否可以调整parentView的大小,使childView不再超出范围?我想动态地这样做。是否有任何自动功能可用,或者我必须通过计算总尺寸手动完成 另一个问题是,在调整parentView的大小以适应childView之前,似乎在parentView的(0100)处添加了childView,而不是(0120),即使我设置了[parentView setClipsToBounds:NO] 可以

上面说明childView的代码是在parentView绑定之外的位置添加到parentView中的。我是否可以调整parentView的大小,使childView不再超出范围?我想动态地这样做。是否有任何自动功能可用,或者我必须通过计算总尺寸手动完成


另一个问题是,在调整parentView的大小以适应childView之前,似乎在parentView的(0100)处添加了childView,而不是(0120),即使我设置了[parentView setClipsToBounds:NO]

可以根据子图幅调整父视图的大小

UIView *parentView  = [[UIView alloc]initWithFrame:[CGRectMake(0,0,100,100)]];
UIView *childView  = [[UIView alloc]initWithFrame:[CGRectMake(0,120,100,100)]];
[parentView addSubview:childView];

如果您可以选择自动布局,我建议您查看内部内容大小。可以设置约束,以便父视图将根据Interface Builder中的内容(子视图)调整大小。在

上有一个关于自动布局的非常好的教程,您可以创建自定义UIView并覆盖addSubView方法,在addSubView覆盖实现中,如果需要,您可以检查要添加的子视图的大小并调整当前视图的大小

UIView *parentView  = [[UIView alloc]initWithFrame:[CGRectMake(0,0,100,100)]];
UIView *childView  = [[UIView alloc]initWithFrame:[CGRectMake(0,0,0,120)]];
[parentView addSubview:childView];

parentView.frame = CGRectMake(0,0,childView.frame.size.width,childView.frame.size.height);

对不起,我的问题打错了,我编辑了我的问题。请提出解决方案。对不起,我的问题打错了,我编辑了我的问题。一定要提出解决办法。
@implementation CustomView

- (void)addSubview:(UIView *)view {

  if(!CGSizeEqualToSize(self.view.size, view.size)) { // Sizes don't match

    // resize self.view here

  }
}

@end