混合Objective-c / swift项目中故事板颜色的问题

时间:2016-06-11 20:45:17

标签: xcode swift uiviewcontroller colors xcode-storyboard

我在objective-c项目中添加了一个新的视图控制器。新的视图控制器是用Swift编写的。一切都正确编译并正常运行,除了无论我为视图的背景颜色选择什么颜色,它都会显示为白色(默认)或黑色。如果我减少默认背景颜色的alpha,它就会变灰。如果我有任何其他颜色大约0.4 alpha的任何东西,视图是黑色的。

第二个问题:我的Swift视图控制器中为视图设置背景颜色的代码似乎没有任何效果。相关代码如下。我首先使用alpha 1.0将视图背景颜色设置为白色,然后将其更改为我想要的颜色。这些都没有任何影响。这是因为它已经在故事板中设置了吗?如果是这样,我如何以编程方式覆盖故事板设置?我是Swift的新手,但是编程Objective-c已经有一年左右的时间了,我还没有在纯粹的Objective-c项目中看到过这种问题。 Xcode版本是7.3。

我真的很感激任何帮助。

override func viewDidLoad() {
    super.viewDidLoad()

    self.username.delegate = self;
    self.password.delegate = self;

    self.navigationItem.setHidesBackButton(true, animated:true);

    view.backgroundColor = UIColor(white: 0x255/255, alpha: 1.0)


    //set the background color to blue-green
    view.backgroundColor = UIColor(
        red: 0x00/255,
        green: 0x7d/255,
        blue: 0x96/255,
        alpha: 1.0)

1 个答案:

答案 0 :(得分:0)

看起来这些问题是由于自动布局问题造成的。如果存在任何自动布局问题(即使它们未被项目导航器中的红色箭头标记),故事板也会生成黑屏。我不确定为什么Swift会发生这种情况:objective-C只会产生一些带有布局问题的屏幕。一旦所有自动布局问题得到修复(通常使用“重置为建议的约束”),就不会出现黑屏。此外,我的设置屏幕背景颜色的代码然后工作。这是非常令人沮丧的,我不知道为什么它的工作方式,当视图底层的代码是Swift而不是Objective-C。但如果故事板场景中存在微小的自动布局问题,那么我会得到一个黑屏。