gpt4 book ai didi

swift - SplitViewController 按钮重叠

转载 作者:行者123 更新时间:2023-11-28 15:19:46 25 4
gpt4 key购买 nike

我有一个带有 MasterViewController 和 DetailViewController 的 UISplitViewController。

在我的 MasterViewController 中,我添加了一个分配了目标操作的按钮,它运行良好......但是:

我希望我的按钮位于 MasterViewController 和 DetailViewController 之间的边界上。但是按钮的一半就消失了。我已经在图层等中尝试过 zPosition 了。但是它没有用。

有人可以帮我吗?

最佳答案

你的意思是:分隔主视图和详细 View 的边框线顶部的按钮对吗?

然后您可以直接从任何主 Controller 或从 Controller 向窗口添加按钮。 (虽然我不确定这是否是最佳做法。)

这里你需要考虑三件事:

  1. 这将在您从 viewDidLayoutSubviews() 添加按钮时起作用。它在 viewDidLoad() 或 viewWillAppear() 中不起作用。

  2. 由于按钮是从 viewDidLayoutSubviews() 添加的,因此有可能会多次调用此方法,从而多次创建按钮并使较早的按钮实例泄漏。因此,您可能会考虑为按钮创建一个类实例,以深化您的应用设计。

  3. 在设备旋转时对按钮的位置(或状态)进行操作。


override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
/// Have a precise logic to centre it
let rect = CGRect(x: 270, y: 200, width: 100, height: 30)
let button = UIButton(frame: rect)
button.setTitle("Test Button", for: .normal)
button.backgroundColor = UIColor.red
button.addTarget(self, action: #selector(MasterViewController.testButtonTapped(sender:)), for: .touchUpInside)

let window = self.view.window
window?.addSubview(button)
window?.bringSubview(toFront: button)
}

func testButtonTapped(sender: UIButton) {
debugPrint("Test button tapped")
}

关于swift - SplitViewController 按钮重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46216065/

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