Objective-C setFrame等效的Swift

Adr*_*ian 5 objective-c uiview swift swift2

我有一个Objective-C项目,我正在重构,我已经找到了一条我无法翻译的行,Apple的文档网站似乎已经关闭了:

[self.stepperView setFrame:self.stepperView.frame];
Run Code Online (Sandbox Code Playgroud)

我试过这个:

    self.stepperView.frame = stepperView.frame
Run Code Online (Sandbox Code Playgroud)

但是这个观点仍然在错误的地方被吸引.有没有人知道setFrameSwift中的等价物?

我试着查看Apple的文档,但似乎该网站已关闭:

在此输入图像描述

bar*_*dog 8

setFrame并且frame在Objective-C和Swift中是等价的.

在Objective-C中,setFrame是为属性生成的setter方法.你也可以(在Objective-C中)view.frame = someFrame100%与调用setFrame:它相同只是你喜欢哪种语法.

在Swift中,所有setVariable:方法名称都替换为等效的点语法view.frame = ....

至于为什么你的视图被绘制在错误的位置,你必须发布一个具体的例子来说明你如何放置你的观点.这很可能是数学或计算错误.值得注意的是,与典型的笛卡尔坐标不同,iOS坐标布局的y值随着下降而增加.

我还注意到,在截图中的一个选项卡中,您搜索到"无法在viewDidLoad之前设置帧".viewDidLoad是设置任何帧值的错误位置.根据文件:

This method is called after the view controller has loaded its view hierarchy into memory. This method is called regardless of whether the view hierarchy was loaded from a nib file or created programmatically in the loadView method. You usually override this method to perform additional initialization on views that were loaded from nib files.
Run Code Online (Sandbox Code Playgroud)

这意味着viewDidLoad对国家,变量初始化,无论而不是布局的地方,因为它是令人难以置信的可能是介于两者之间的地方viewDidLoadviewDidAppear别的东西,东西在你的控制重新定位你的看法.最可能的罪魁祸首是视图边界更改和调整所有子视图.