我有一个UIView,让我说框架previewBackgroundView(60, 154, 200, 200)。它是self.view的子视图。

然后我有一个动态视图,例如框架dynamicView(0, 0, 260, 100)。它可能包含任何数量的子组件,例如UIButtonUILabel等。

注意:dynamicView可以是任何大小。我将dynamicView作为方法中的参数传递。

当我将dynamicView作为子视图添加到previewBackgroundView时,它超出了previewBackgroundView的范围。因此,我想调整dynamicView及其子元素的大小,以使其位置位于previewBackgroundView的中心,并且dynamicViewpreviewBackgroundView的范围内。简而言之,无论dynamicView有多大,我都必须像previewBackgroundView中的预览一样显示dynamicView

我的第一次尝试是设置clipsToBounds,它在Xcode5,iOS7中不起作用。欢迎您提出其他选择。

最佳答案

1)如果您的动态视图大于PreviewBackgroundView,则应调整dynamicView的大小,并保持宽高比。缩小比例,使其位于预览BackgroundView中。

您可以使用scale属性,如下所示:

self.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1, 1);


要么

2)您可以保持动态视图具有所需的大小视图,并使用滚动视图使动态视图中的内容可滚动。

我建议您选择第二个选项。

09-26 12:36