我在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];
可能有多种处理方法,但我能想到两种。
-
手动-自动resizing掩码给你的是确定性的,所以计算出来。
-
创建一个self.view大小的中间UIView,将提取的视图添加到其中,并将中间视图的大小调整为"新的较小父级"的大小。然后,您的子视图将适当调整大小。然后将它们从中间视图中删除,并添加到所需的目标视图中。