Ios 视图将显示为不执行代码
我的viewWillExample方法中有一段代码,它只是将一组标签从屏幕上向下移动:Ios 视图将显示为不执行代码,ios,swift,Ios,Swift,我的viewWillExample方法中有一段代码,它只是将一组标签从屏幕上向下移动: override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) //Hide 1,3,5 RM labels oneRepMax.center.y += view.bounds.height threeRepMax.center.y += view.bounds.height
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
//Hide 1,3,5 RM labels
oneRepMax.center.y += view.bounds.height
threeRepMax.center.y += view.bounds.height
fiveRepMax.center.y += view.bounds.height
}
所有3个标签都已正确链接到我的故事板文件。当我运行项目时,什么都没有发生
如果我将完全相同的代码复制到链接到按钮的方法中,它将按预期工作
在这个项目中没有任何其他东西,所以我不明白为什么这不起作用
我正在使用Xcode 7,并遵循一个教程,该教程在ViewWillApperMethod中起作用。
详情如下:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
heading.center.x -= view.bounds.width
username.center.x -= view.bounds.width
password.center.x -= view.bounds.width
loginButton.center.y += 30
loginButton.alpha = 0
}
在所有标签出现在屏幕上之前,您永远不会知道边界 请尝试在ViewDidAspect方法中执行相同的操作 从文件: 完成视图初始外观中涉及的任何图形和动画后,将调用此方法。可以重写此方法以执行适合该时间的任务,例如不应干扰演示动画的工作,或启动要在视图显示后开始的动画
在所有标签出现在屏幕上之前,您永远不会知道边界 请尝试在ViewDidAspect方法中执行相同的操作 从文件: 完成视图初始外观中涉及的任何图形和动画后,将调用此方法。可以重写此方法以执行适合该时间的任务,例如不应干扰演示动画的工作,或启动要在视图显示后开始的动画
尝试将代码更改为
viewdide
您可以在中找到更多信息。尝试将代码更改为
viewdide
您可以在中找到更多信息。这段代码来自Ray Wenderlich的《iOS动画教程》,对吗?
我也有同样的问题。我找到了这个问题的原因——教程中的视图不使用自动布局和大小类,这就是为什么标签在设置坐标时不响应。尝试更改
视图中标签的颜色将出现方法,如labelText.textColor=UIColor.greenColor()
,一切正常,但如果尝试设置坐标,如labelText.center.x-=view.bounds.width
则不会发生任何事情。因此,单击您的视图并转到文件检查器,滚动一点,您将看到复选标记使用自动布局
和使用大小类
取消选中,您将获得所需内容。但是你也会很痛苦,因为这对于没有自动布局的代码来说是另一个漫长的故事。祝你好运 这段代码来自Ray Wenderlich的《iOS动画教程》,对吗?
我也有同样的问题。我找到了这个问题的原因——教程中的视图不使用自动布局和大小类,这就是为什么标签在设置坐标时不响应。尝试更改视图中标签的颜色将出现方法,如labelText.textColor=UIColor.greenColor()
,一切正常,但如果尝试设置坐标,如labelText.center.x-=view.bounds.width
则不会发生任何事情。因此,单击您的视图并转到文件检查器,滚动一点,您将看到复选标记使用自动布局
和使用大小类
取消选中,您将获得所需内容。但是你也会很痛苦,因为这对于没有自动布局的代码来说是另一个漫长的故事。祝你好运 加载视图控制器时,会调用几种方法。他们的顺序是这样的(在UIViewController
):
loadView
viewDidLoad
视图将出现:
viewWillLayoutSubviews
layoutSubviews
(在视图控制器内的UIView
s上)
viewdilayoutsubviews
(视图控制器知道所有设置)
viewdide出现:
从viewdilayoutsubviews
中,您完全可以确定您的更改将生效,因为元素已设置。在此之前,您无法确定(除非缓存了视图控制器,并且它再次出现)。加载视图控制器时,会调用几种方法。他们的顺序是这样的(在UIViewController
):
loadView
viewDidLoad
视图将出现:
viewWillLayoutSubviews
layoutSubviews
(在视图控制器内的UIView
s上)
viewdilayoutsubviews
(视图控制器知道所有设置)
viewdide出现:
从viewdilayoutsubviews
中,您完全可以确定您的更改将生效,因为元素已设置。在此之前,您不能确定(除非缓存了视图控制器,并且它再次出现)。好的,但如果我将view.bounds.height更改为1000左右,这是否可行?我正在学习一个教程,在那里我可以做到这一点。你能分享这个教程的链接吗?这是一个视频教程,附带一个付费墙,很不幸,这是可以的,但是你必须在ViewDidEmbeen中完成。按照文档进行操作您可以在viewdide:
(当您完全确定所有内容都已设置好时)或更好的情况下在viewdidelayoutsubviews
(在viewdide:
之前调用,但在viewdide:
之后调用)上进行操作。可以,但如果我将view.bounds.height更改为1000左右,那不管用吗?我正在学习一个教程,在那里我可以做到这一点。你能分享这个教程的链接吗?这是一个视频教程,附带一个付费墙,很不幸,这是可以的,但是你必须在ViewDidEmbeen中完成。按照文档进行操作您可以在viewdide:
(当您完全确定所有内容都已设置)或,