swift - 带圆角的 CALayer 显示黑色或外来内容
问题描述
事情是这样的:我有一个几乎完成的应用程序。我添加了一个与 GUI 完全无关的功能(所以我认为),我注意到 GUI 元素的一种奇怪行为,这些元素已经被打磨并且可以完美地工作。经过两周的玩耍,禁用/启用代码,重新创建和更改内容后,我对如何解决这个问题没有线索。
看看这张照片:
有两个错误同时出现,这就是我将它们合并为一个问题的原因。
- 我有一个简单的背景视图,其中 .wantsLayer = true 和 .masksToBounds = true。在它上面我有多个具有相同设置的视图和一个 .cornerRadius 到它们的层。几周前,这非常有效。现在我可以看到一些(!不是每个)角落实际上并没有被切断,而是显示(通常只是黑色)内容。
- 一些角落显示白色内容(左上角)。有些显示完全不同层的内容(底部视图)!
澄清一下:出于调试原因,我在图片顶部的白色下方添加了一个简单的红色分层视图。我希望白色视图在顶部和底部都有圆角(红色!)。然而,顶部是白色的(带有红线),而底部则根本不是圆形的。其次,这对我来说很奇怪,底部视图根本没有任何设置为红色!红色的角来自顶视图层的颜色!如果我将顶视图的背景视图设为蓝色而不是红色,那么底视图的角也会变为蓝色。
到目前为止我发现了什么:
- 当父视图未设置为 .maskToBounds = true 时,通常会发生拐角。它在我的示例中设置,并且之前也有效。如果不触及 Interface Builder 中的任何相关代码或视图,我怎么能搞砸呢?
- 我在网上找不到任何关于在不可见的部分中显示其他图层内容的图层...
任何帮助将不胜感激!
注意:底部视图上有一个阴影,这是一个完全不同的视图,下面只做一个阴影。我忘记将其删除以获取屏幕截图。
解决方案
推荐阅读
- wpf - 将图像控件绑定到数据网格数据上下文(视图模型)
- php - 谁能帮我在 Yii2 框架中将多个数组保存到数据库中?
- r - 在 Cox 回归中获得零 P 值:R
- python - 在python中解析列表的子列表
- c++ - cmake 错误 [SDK/Util/CMakeLists.txt:132 (add_library) 处的 CMake 错误]
- apache-kafka - Spring Cloud Stream Binding Consumer 属性不起作用
- sql - SparkSQL - 两个时间戳之间的差异(以分钟为单位)
- android - Discord OAuth2登录失败通过Android Webview
- javascript - 使用 Sequelize 在 GraphQL 查询中将日期时间字段作为字符串输出
- javascript - 如何将 JSON 转换为 Javascript 数组?