我有一个主视图和一个 view1 进入主视图,如何调整 view1 的大小?
此代码不起作用:
self.View1.bounds.size.height = self.view.bounds.size.height;
我有一个主视图和一个 view1 进入主视图,如何调整 view1 的大小?
此代码不起作用:
self.View1.bounds.size.height = self.view.bounds.size.height;
CGRect frame = self.View1.frame;
frame.size.height = self.view.bounds.size.height;
self.View1.frame = frame;
您不能直接修改边界。CGRect 需要在视图边界之外进行修改。
CGRect viewBounds = self.view1.bounds;
viewBounds.size.height = self.view.bounds.size.height;
self.view1.bounds = viewBounds;
希望这可以帮助!
[self.View1 setFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.x, self.view.frame.size.height, self.view.frame.size.height)];
我没有足够的声誉来为其他一些答案添加简单的评论,所以我将在这里帮助指出几个要点:
(1) 如果只是改变大小,设置 newbounds
而不是frame
如果您只是想调整图像大小(但将图像保持在同一位置),请按照cdownie 的建议设置 newbounds
而不是 new frame
。例如,如果您有一个指针手的图像,并且想让它看起来好像在点击屏幕,那么缩放bounds
向下和快速备份的大小将实现这一点,并且它将在其屏幕上保持相同的位置。如果将图像的锚点设置在其中心,则为中心点。如果您frame
按照 Tony Friz 的建议进行了更改,那么在减小图像尺寸时,图像将拉到其左上角(除非您通过额外的数学校正)。
(2) 如果图像是在 nib 或 storyboard 中创建的,关闭 Autolayout 和 Autosizing
在您移动图像或调整图像大小的任何视图上,都需要关闭自动布局。如果您将其保持打开状态,则行为(当然)将是奇怪且不可预测的。此外,在 Autolayout 关闭的情况下,进入图像的 Size Inspector 并设置正确的原点(例如中心)并通过单击 Autosizing 网格中的任何实线来禁用所有 Autosizing 约束,直到所有这些都是虚线。这样,您将center
通过设置 new 更改属性和大小来完全控制图像放置bounds
。
希望这会有所帮助,埃里克