gpt4 book ai didi

swift - UIButton 在 ContainerView 之外

转载 作者:行者123 更新时间:2023-11-28 15:40:38 26 4
gpt4 key购买 nike

我是 Swift 的新手,我正在尝试学习如何以编程方式构建 iOS 应用程序,但对 Storyboard 的使用非常有限。现在,目标是在应用程序顶部创建一个菜单,其中将包含按钮。根据我的研究,执行此操作的最佳方法似乎是将 UIButton 嵌套在 ContainerView 中。但是,问题是我的 UIButton 显示在我的 ContainerView 之外。也许我需要对 ViewContainer 和我的 UIButton 设置约束?

你们能给我指明正确的方向吗?非常感谢您的帮助。

Storyboard:

enter image description here

应用模拟器(iPhone 7 Plus):

enter image description here

HomeController.swift:

class HomeController: UIViewController {
let topMenuContainerView = UIView()
topMenuContainerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(topMenuContainerView)

let topMenuController = storyboard!.instantiateViewController(withIdentifier: "Top_Menu_View_Controller")
addChildViewController(topMenuController)
topMenuController.view.translatesAutoresizingMaskIntoConstraints = false

topMenuContainerView.addSubview(topMenuController.view)
topMenuController.didMove(toParentViewController: self)
}

TopMenuController.swift:

class TopMenuController: UIViewController {
let createAdButton: UIButton = UIButton(type: UIButtonType.roundedRect)

createAdButton.setTitle("Create Ad", for: UIControlState.normal)
createAdButton.titleLabel?.textColor = UIColor.white
createAdButton.frame = view.frame
createAdButton.backgroundColor = UIColor.white

view.addSubview(createAdButton)
}

最佳答案

是的,我相信添加约束会解决您的问题。它会是这样的:

let horizontalConstraint = NSLayoutConstraint(item: createAdButton, attribute: NSLayoutAttribute.centerX, relatedBy: .equal, toItem: view, attribute: NSLayoutAttribute.centerX, multiplier: 1, constant: 0)
let verticalConstraint = NSLayoutConstraint(item: createAdButton, attribute: NSLayoutAttribute.centerY, relatedBy: .equal, toItem: view, attribute: NSLayoutAttribute.centerY, multiplier: 1, constant: 0)

view.addConstraints([horizontalConstraint, verticalConstraint])

但是,在 Home Controller 中只包含一个 UIView 而不是仅用于菜单的 View Controller 不是更好吗?

关于swift - UIButton 在 ContainerView 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43749728/

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