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

时间:2012-04-04 16:34:59

标签: ios uiview

我在核心数据中保存了几个视图参数,这些参数已缩放到self.view范围内。当我获取视图参数时,我想重新缩放视图以适应较小的父视图(newView)。如何在viewSelected父视图中调整newView子视图的大小?

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 个答案:

答案 0 :(得分:0)

可能有多种方法可以解决这个问题,但我可以想到两个方法。

  1. 手动 - 自动调整遮罩给你的是确定性的,所以要计算出来。

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