Ios 更改视图后获取其原始高度

Ios 更改视图后获取其原始高度,ios,swift,uiview,Ios,Swift,Uiview,在UIViewController中,调用self.view.frame.size.height=99后,如何返回视图的原始高度(而不将其保存在变量中) 我想到了UIScreen.mainScreen().bounds.height,但如果存在导航栏或其他栏,这可能不准确。而且一旦更改了图幅,如果没有附加变量,就无法获得以前的尺寸值。 您可以将初始帧保存在变量中,以后再使用。并且,一旦更改了视图帧,如果没有其他变量,您将无法获得以前的大小值。 您可以将初始帧保存在变量中并在以后使用。通过使其su

UIViewController
中,调用
self.view.frame.size.height=99
后,如何返回视图的原始高度(而不将其保存在变量中)


我想到了
UIScreen.mainScreen().bounds.height
,但如果存在导航栏或其他栏,这可能不准确。

而且一旦更改了图幅,如果没有附加变量,就无法获得以前的尺寸值。

您可以将初始帧保存在变量中,以后再使用。

并且,一旦更改了视图帧,如果没有其他变量,您将无法获得以前的大小值。
您可以将初始帧保存在变量中并在以后使用。

通过使其superview执行布局,您可以将视图恢复到其原始大小:

view.superview?.setNeedsLayout()
view.superview?.layoutIfNeeded()
再说一次,这可能不起作用。这取决于嵌入视图的内容以及视图如何布局其子视图

通常,设置视图控制器的根视图的框架是个坏主意。该视图的容器(窗口、导航控制器或选项卡栏控制器等)的任务是设置视图控制器的根视图的框架。

通过使其superview执行布局,您可以将视图恢复到其原始大小:

view.superview?.setNeedsLayout()
view.superview?.layoutIfNeeded()
再说一次,这可能不起作用。这取决于嵌入视图的内容以及视图如何布局其子视图


通常,设置视图控制器的根视图的框架是个坏主意。该视图的容器(窗口、导航控制器、选项卡栏控制器等)的任务是设置视图控制器的根视图的框架。

在另一个变量中更改之前保存大小。或者,您也可以将属性添加到
UIView
中,保存其原始高度。类似的问题是:在另一个变量中更改之前保存大小。或者你也可以在
UIView
中添加一个属性,保存其原始高度。一个类似的问题:哦,它太快了,我被objective-c弄糊涂了。编辑回答哦,太快了,我被objective-c弄糊涂了。编辑答案