2013-10-16 165 views

回答

18
CGRect frame = self.View1.frame; 
frame.size.height = self.view.bounds.size.height; 
self.View1.frame = frame; 
+1

不过要小心。坚持任何边界或框架。他们不一样。例如,当旋转到横向时,框架可能仍具有原始纵向尺寸,但边界总是正确的,因为边界通过应用于视图的任何变换(包括旋转)进行更新。 –

1
[self.View1 setFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.x, self.view.frame.size.height, self.view.frame.size.height)]; 
4

您不能直接修改的范围。 CGRect需要在视图边界之外进行修改。

CGRect viewBounds = self.view1.bounds; 
viewBounds.size.height = self.view.bounds.size.height; 
self.view1.bounds = viewBounds; 

希望这有助于!

1

我没有足够的声誉简单的注释添加一些其他的答案,所以我会帮指出了几个重要的点这里:

(1)如果仅仅改变大小,设置新的bounds代替frame

如果你是只是希望调整图像大小(但保持图像在同一位置),然后按照设定新bounds,而不是一个新的framecdownie的建议。例如,如果您有一个指针手的图像,并且想让它看起来好像在点击屏幕,那么缩小屏幕的大小并快速备份将会实现这一点,并且它将保持其屏幕位置不变如果将图像的锚点设置在其中心,则为其中心点。如果您改变了frame而不是Tony Friz的建议,那么在缩小图像尺寸时,图像将拉到左上角(除非您用额外的数学来修正)。

(2)如在笔尖或情节串连图板中创建的图像,关闭自动布局和自动调整大小

自动布局需要通过要在其中运动图像周围或调整他们的任何意见,以将其关闭。如果你放弃它,行为将会(当然)变得奇怪且不可预测。此外,在Autolayout关闭的情况下,进入图像的尺寸检查器并设置正确的原点(例如中心),并通过单击自动调整网格中的任何实线直到所有实线均为虚线来禁用所有自动调整约束。通过这种方式,您可以通过更改center属性并设置新的bounds来完全控制图像放置。

希望这会有所帮助, Erik