在ViewController.swift和segue中分配给UIButton的属性在Simulator上有效,但在Device上无效

时间:2019-07-09 13:11:21

标签: ios swift swift4 xcode10

我有一个非常奇怪的问题。我创建了一个UIButton并将其放在ViewController故事板上。我通过按下控件并拖动将按钮中的segue添加到另一个ViewController。我还为相应的ViewController文件添加了一个出口,并为按钮添加了边框的颜色和宽度。 segue和按钮边框在模拟器上可以正常工作,但是在设备上,按钮边框不会显示,segue无法使用。

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

     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
    }

我该如何在我的设备上使用它?我做错了

4 个答案:

答案 0 :(得分:0)

在此处分配边框样式...

enter image description here

答案 1 :(得分:0)

尝试添加代码以更改layercalibrateButton的{​​{1}}属性,即

viewDidLayoutSubviews()

此外,由于您将override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() calibrateButton.layer.borderColor = UIColor.white.cgColor calibrateButton.layer.borderWidth = 3 } 设为borderColor,因此,如果将white放在白色背景上,则可能看不到。尝试将其更改为其他更可见的内容,例如calibrateButton

答案 2 :(得分:0)

首先尝试在viewDidAppear()中进行操作,然后将其剪切并粘贴到viewDidLayoutSubviews()中。

答案 3 :(得分:0)

我终于解决了这个问题。问题是我的按钮没有高度限制。我仍然不太确定为什么或如何发生此问题。为什么我看不到按钮文字但看不到边框?如果segue无法正常工作,则必须在按钮上方有一个防止其关闭的视图。但是无论如何增加高度限制都解决了这个问题。在回答我自己的问题时,我意识到问题的标题与解决问题有关。这个问题最终与应用程序是否在模拟器或设备上运行无关。我只是认为这是设备问题,因为它可以在我的iPhone XR模拟器上正常工作,但在我的实际iPhone 6s上却不能正常工作。但是,实际的问题是屏幕尺寸以及我的约束条件如何适应。