混合objective-c/swift项目中的故事板颜色问题
Posted
技术标签:
【中文标题】混合objective-c/swift项目中的故事板颜色问题【英文标题】:Problems with storyboard colors in mixed objective-c/swift project 【发布时间】:2016-06-11 20:45:17 【问题描述】:我在我的 Objective-C 项目中添加了一个新的视图控制器。新的视图控制器是用 Swift 编写的。一切都可以正确编译并正常运行,除了无论我为视图的背景颜色选择什么颜色,它要么是白色(默认),要么是黑色。如果我降低默认背景颜色的 alpha,它只会变成灰色。如果我对任何其他颜色的 alpha 值超过 0.4,则视图为黑色。
第二个问题:我的 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】:看起来这些问题是由自动布局问题引起的。如果有任何自动布局问题(即使它们在项目导航器中没有被红色箭头标记),情节提要会产生黑屏。我不确定为什么 Swift 会发生这种情况:objective-C 只会产生一个带有一些布局问题的屏幕。一旦所有的自动布局问题都得到解决(通常通过使用重置为建议的约束),就不会出现黑屏了。此外,我用于设置屏幕背景颜色的代码然后工作。这非常令人沮丧,我不知道为什么当视图底层的代码是 Swift 而不是 Objective-C 时它会这样工作。但是,如果情节提要场景中有最微小的变化存在微小的自动布局问题,我会得到一个黑屏。
【讨论】:
以上是关于混合objective-c/swift项目中的故事板颜色问题的主要内容,如果未能解决你的问题,请参考以下文章
AudioUnit Render 回调中的 Objective-C/Swift 用法
Objective-C:Swift Package 函数中的多参数方法语法