动态调整 UI "container"大小



在向"容器"UIView中添加动态数量的子UIView元素时,我的UI遇到了问题。基本上,我需要能够动态调整容器视图的大小(下面是self.containerAView(,以适应所有添加到其中的"子"子视图的高度。到目前为止,我所做的所有重置框架的尝试都没有成功。值得注意的是,初始大小是在*.xib文件中定义的,该文件最初加载的containerAView(UIView(元素的初始大小为300x200(宽x高(。

- (void)drawScreen {
    // handle all screen presentation initialization here
    // programatically create a dynamic number of child views to add to the container view
    for (int i = 0; i < 3; i++) {
        int childViewHeight = 60;
         int childViewWidth = 300;
        UIView *childView = [[UIView alloc] initWithFrame:CGRectMake(0, (i * childViewHeight) + (i * 10), childViewWidth, childViewHeight)];
    childView.backgroundColor = [UIColor blackColor];
    [self.containerAView addSubview:childView];
    }
    // build a mapping dictionary for all child elements in the container view
    NSMutableDictionary *containerASubViewDictionary = [[NSMutableDictionary alloc] init];
    for (int i = 0; i < [self.containerAView.subviews count]; i++) {
        [containerASubViewDictionary setValue:self.containerAView.subviews[i] forKey:[NSString stringWithFormat:@"childView%d", i]];
    }
    // WHAT TO ADD HERE TO HANDLE RESIZING self.containerAView height???
}

任何关于动态调整容器视图大小的帮助都将不胜感激,因为我还无法找到任何解决方案。

一种可能是最新方法的方法是在接口生成器中向containerview添加4个自动布局约束。

添加四个约束:x=0,y=0,width=300&高度=200

现在,在界面生成器中单击宽度约束以高亮显示它,然后控制并将其拖动到.h文件中,并为其命名,如containerWidth。

@property (strong, nonatomic) IBOutlet NSLayoutConstraint *containerWidth;

根据高度重复上述步骤。

在.m文件中,可以通过操纵约束来调整drawScreen方法中的高度和宽度。

self.containerWidth.constant = width; // your calculated new width
self.containerHeight.constant = height; // your calculated new height

您似乎试图更改容器框架的高度。框架有原点和大小。尝试操作这些属性:

self.containerView.frame.origin.x
self.containerView.frame.origin.y
self.containerView.frame.size.height
self.containerView.frame.size.width

相关内容

  • 没有找到相关文章

最新更新