如何调整UIViews的大小以适应较小的父视图



我在Core Data中保存了几个视图参数,这些参数经过缩放以适应self.view。获取视图参数时,我希望重新缩放视图以适应较小的父视图(newView)。如何在newView父视图中调整viewSelected子视图的大小?

newView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];
newView.autoresizesSubviews = YES;
for (Shape *shape in shapes) {
    ShapeView *viewSelected = [[SquareView alloc]init];
    [viewSelected setAutoresizingMask:UIViewAutoresizingFlexibleHeight |
             UIViewAutoresizingFlexibleWidth];
    viewSelected.frame = CGRectMake(shape.x,shape.y,shape.shapeSize,shape.shapeSize);
    [newView addSubview:viewSelected];
}
[self.view addSubview:newView];

可能有多种处理方法,但我能想到两种。

  1. 手动-自动resizing掩码给你的是确定性的,所以计算出来。

  2. 创建一个self.view大小的中间UIView,将提取的视图添加到其中,并将中间视图的大小调整为"新的较小父级"的大小。然后,您的子视图将适当调整大小。然后将它们从中间视图中删除,并添加到所需的目标视图中。

最新更新