在 ViewController.swift 中分配给 UIButton 的属性和 segue 在模拟器上工作但在设备上不工作

Properties assigned to UIButton in ViewController.swift and segue works on Simulator but not on Device

我有一个非常奇怪的问题。我创建了一个 UIButton 并将其放在我的 ViewController 故事板上。我通过按住 control 并拖动从 Button 添加了一个 segue 到另一个 ViewController。我还在相应的 ViewController 文件中添加了一个插座,并添加了边框颜色和宽度(到按钮)。 segue 和按钮边框在模拟器上工作正常,但在设备上按钮边框不显示并且 segue 不起作用。

我唯一能想到的可能导致问题的是不久前我不小心删除了我的 Main.storyboard,所以我将它从我的垃圾箱拖回我的 Xcode 项目.但我很确定即使在那次事件发生后,我的应用程序仍然可以在设备上运行。我不确定我的 viewDidLoad 方法是否被触发(因为这是我为按钮设置边框颜色和宽度的地方)所以我添加了一个打印语句并发现它确实被调用了。看看下面的代码...

     override func viewDidLoad() {
        super.viewDidLoad()
        print("Begin Setup Process...")
        // Do any additional setup after loading the view.
        calibrateButton.layer.borderColor = UIColor.white.cgColor
        calibrateButton.layer.borderWidth = 3
    }

我怎样才能让它在我的设备上也能正常工作?我做错了什么

在此处指定您的边框样式...

尝试添加代码以更改 viewDidLayoutSubviews()calibrateButtonlayer 属性,即

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    calibrateButton.layer.borderColor = UIColor.white.cgColor
    calibrateButton.layer.borderWidth = 3
}

此外,由于您将 borderColor 设为 white,因此如果将 calibrateButton 放置在 白色背景[=23] 上,则可能看不到=].尝试将其更改为更明显的其他内容,例如 red

首先在 viewDidAppear() 中尝试,如果可行则将其剪切并粘贴到 viewDidLayoutSubviews()

我终于解决了这个问题。问题是我的按钮没有高度限制。我仍然不确定为什么或如何发生此问题。为什么我看不到按钮文字但看不到边框?如果 segue 不起作用,则按钮顶部一定有一个视图阻止它关闭。但无论如何添加高度限制解决了这个问题。在回答我自己的问题时,我意识到我的问题的标题在解决问题方面具有误导性。这个问题,最终与应用程序是在模拟器上还是在设备上 运行 无关。我只是假设这是一个设备问题,因为它在我的 iPhone XR 模拟器上运行良好,但在我的实际 iPhone 6s 上运行良好。然而,实际问题是屏幕尺寸以及我的约束如何适应它。