在 Swift 中前后发送标签...我必须这样做吗?
Send Labels forward and back in Swift... do I have to?
我想要一个 UILabel 在同一屏幕上不断更新界面元素后面的内容。通过使用 Swift 的 Xcode 工具中的 Debug View Hierarchy 工具,我可以看到我的标签从其他元素下方开始。一旦我更新标签中的文本,它就会跳到顶部并覆盖我的其他标签和界面元素。
First Image
3D Debugger Image
第一个问题...我找不到在 Interface Builder 中设置前后层的工具...如果有人能向我指出那会很棒,Google 还没有是我的朋友。
因为当我更新标签时它最终会排在最前面,我想我可以在我刷新标签时将标签发送到后面......在我的 ViewController.swift 文件中,在我所在的函数中更新标签的文本,我已经尝试过:(我的标签的出口挂钩称为 "consoleMe"
super.sendSubview(toBack:consoleMe)
不……也许这是倒退?所以我尝试了:
consoleMe.sendSubview(toBack: super)
...以及 "self" 而不是超级。它根本不喜欢超级。它抱怨 self 是 ViewController 而不是 UIView。
最后,我想知道我是否必须这样做——肯定有一种方法可以指定 UILabel 应该保持在其他东西下面吗?
更新 UILabel 会自动将其置于最前面是否正确(或者是其他原因?)我尝试制作其他标签和项目 "opaque" 但当然没有效果,因为它们最终在我的控制台标签下方。
谢谢!
-D
sendSubview(toBack:)
是 UIView
的一种方法,所有 UIViewController
对象都包含一个 view
内置。
来自 UIViewController
文档:
View Management
Each view controller manages a view hierarchy, the root view of which is stored in the view
property of this class.
因此在 view
属性 上调用 sendSubview(toBack:)
:
view.sendSubview(toBack: consoleMe)
我想要一个 UILabel 在同一屏幕上不断更新界面元素后面的内容。通过使用 Swift 的 Xcode 工具中的 Debug View Hierarchy 工具,我可以看到我的标签从其他元素下方开始。一旦我更新标签中的文本,它就会跳到顶部并覆盖我的其他标签和界面元素。
First Image 3D Debugger Image
第一个问题...我找不到在 Interface Builder 中设置前后层的工具...如果有人能向我指出那会很棒,Google 还没有是我的朋友。
因为当我更新标签时它最终会排在最前面,我想我可以在我刷新标签时将标签发送到后面......在我的 ViewController.swift 文件中,在我所在的函数中更新标签的文本,我已经尝试过:(我的标签的出口挂钩称为 "consoleMe"
super.sendSubview(toBack:consoleMe)
不……也许这是倒退?所以我尝试了:
consoleMe.sendSubview(toBack: super)
...以及 "self" 而不是超级。它根本不喜欢超级。它抱怨 self 是 ViewController 而不是 UIView。
最后,我想知道我是否必须这样做——肯定有一种方法可以指定 UILabel 应该保持在其他东西下面吗?
更新 UILabel 会自动将其置于最前面是否正确(或者是其他原因?)我尝试制作其他标签和项目 "opaque" 但当然没有效果,因为它们最终在我的控制台标签下方。
谢谢! -D
sendSubview(toBack:)
是 UIView
的一种方法,所有 UIViewController
对象都包含一个 view
内置。
来自 UIViewController
文档:
View Management
Each view controller manages a view hierarchy, the root view of which is stored in the
view
property of this class.
因此在 view
属性 上调用 sendSubview(toBack:)
:
view.sendSubview(toBack: consoleMe)