为什么设置backgroundColor对我的自定义UIView没有可见效果?

瓦尔德鲁姆斯

当我设置了backgroundColorXib实例化的子类属性时UIView,视图的背景颜色不会改变,而是保持在Xib中设置的颜色。

重现问题

我创建了的子类UIView,我们称它为它MyView,还有一个Xib从中实例化了它。使用Interface Builder,我将Xib中视图的背景颜色设置为蓝色。

我已将的实例添加MyView为应用主视图的子视图。正如预期的那样,它显示为蓝色。

然后,我添加了一个插座,myView引用的实例MyView,以及一个按钮,该按钮的操作试图更改视图的背景色,如下所示:

@IBOutlet weak var debugView: MyView!

@IBAction func debug(_ sender: Any) {
    myView.backgroundColor = UIColor.green
}

我希望的背景色变myView为绿色;相反,它像以前一样保持蓝色。

观察结果

奇怪的是,如果我在调试器中检查视图的背景色,即使更改不可见,该属性似乎也已按预期设置为绿色:

(lldb) p debugView.backgroundColor == UIColor.blue
(Bool) $R1 = false
(lldb) p debugView.backgroundColor == UIColor.green
(Bool) $R2 = true

我也尝试过强制使用来重绘视图setNeedsDisplay(),但无效。

为什么自定义视图的外观不能反映其backgroundColor属性?

Y_Y

您可能将笔尖视图作为子视图添加到了swift文件的customview中,这就是更改backgroundcolor的原因,而您看不到这些更改。您需要更改debugview子视图的背景颜色以查看颜色变化。例如:-

self.debugView.subviews.first?.backgroundColor = 
    self.debugView.subviews.first?.backgroundColor == UIColor.blue
        ? UIColor.black : UIColor.blue

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的自定义视图不可见?

为什么我的android自定义帐户没有显示在“帐户和设置”中?

自定义构造函数没有可见的@interface

为什么带有自定义绘画的小部件不可见?

自定义 UITableViewCell 中的 UIView 不可见

为什么我的 RecyclerView 没有响应我的自定义 Click-Event?

在我的自定义UIView中,设置子视图的backgroundColor会使它掩盖我的drawRect绘图(CGContextRef,CGMutablePathRef等)。怎么修?

为什么 EF Core 没有设置自定义注释?

最前面可见的UIView没有接触,为什么?

重新启动后为什么我的自定义鼠标光标没有加载?

为什么我的自定义分页器没有按预期加载结果?

为什么我的自定义登录页面没有显示在Spring Security 4中?

为什么没有绘制超出我的自定义视图边界的子视图?

为什么我的自定义菜单没有显示在Wordpress中?

为什么我的自定义测试没有被PHPUnit启动?

为什么我的自定义帖子类型没有显示在管理菜单中?

NPOCO:为什么我的自定义Mapper没有被调用

为什么在点击(ios)时我的自定义附件按钮没有更改图像?

为什么我的静态首页自定义模板没有显示?

为什么我的自定义Symfony验证程序没有执行?

HTML - 为什么我的自定义 css 非动画光标没有显示?

为什么我的自定义lightgbm损失没有减少?

为什么我的 SwiftUI 自定义视图没有正确更新?

为什么我的 Angular 表单自定义验证没有触发

当没有特殊字符可见时,为什么我不断收到字符“ ”是无效的 XML 字符

为什么我的自定义操作符没有导入到我的DAG(气流)中?

当我使用 setAttribute 更改属性时,为什么我的自定义组件没有更新?

设置自定义NSView的backgroundColor

自定义 MediaTrasportControls 不可见