gpt4 book ai didi

Ios Swift 以编程方式更改 Storyboard 上的 View 顺序

转载 作者:行者123 更新时间:2023-11-28 06:37:56 25 4
gpt4 key购买 nike

我在 Storyboard中添加了一个 textView 和一个 imageView,如下面的屏幕截图所示。

Storyboard中的顺序是:

  • textView
  • imageView

现在运行 imageView 覆盖 textView 并且分配给 textView 的东西不起作用。

所以我想以编程方式将顺序更改为:

  • imageView
  • textView

(不触及 Storyboard)

我试过:

self.view.bringSubviewToFront(textView)

self.view.sendSubviewToBack(imageView)

imageView.layer.zPosition = 1
textView.layer.zPosition = 2

这些都不适合我

Story Board View order

最佳答案

我想问题是您可能在 viewDidLoad 方法中使用了这些代码。尝试在 viewDidAppear

中使用

或者另一种尝试是使用 performSelector

viewDidLoadviewWillAppear 中写这个

self.performSelector(#selector(changeOrder), withObject: nil, afterDelay: 0.2)

并在此函数中写入您的订单更改

func changeOrder() {
imageView.layer.zPosition = 1
textView.layer.zPosition = 2
}

编辑

我做了一个样本。看看吧。
https://github.com/RajanMaheshwari/OrderingLayer

我已经尝试过代码并且它工作正常

class ViewController: UIViewController {

@IBOutlet weak var myImageView: UIImageView!
@IBOutlet weak var myTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()

self.performSelector(#selector(changeOrder), withObject: nil, afterDelay: 0.2)
}

func changeOrder() {

myImageView.layer.zPosition = 1
myTextField.layer.zPosition = 2
}
}

我的 Storyboard

enter image description here

运行代码后的最终结果

enter image description here

现在imageView在第1层,textField在第2层位置

如果您注释掉 performSelector 行,那么结果将是

enter image description here

这里imageView在第2层位置,textField在第1层位置。

关于Ios Swift 以编程方式更改 Storyboard 上的 View 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com