14

所以,我在一个单元格中有一些 UILabels 和 UITextViews。我的表格滚动有点慢,我尝试了 iOS 模拟器和仪器中可用的“颜色混合图层”实用程序。它以红色显示正在混合并导致缓慢滚动的图层。

所有元素都在混合,所以我给 UILabels (与单元格相同)设置了一个白色背景,现在 UILabels 没问题(他们之前有 clearColor 作为背景)。

我对 UITextViews 做了同样的事情,我选择了白色背景,但它们仍然在屏幕中显示为混合层(红色)。

每个 UITextView 配置都是在界面生成器中完成的,我尝试了每个选项,但它们仍然显示为红色。

我必须对 UITextViews 做什么才能使它们的图层不混合?

提前致谢!

PD:抱歉,我不能包含捕获

4

2 回答 2

20

我也在努力解决这个问题。我有一个 UITableView,它在 iPhone 上滚动得很好,但在 iPad 上却像疯了一样抖动。我打开Color blending layers了仪器,就像你说的那样,它出现了opaque = YES;并且backgroundColor = [UIColor whiteColor];没有效果。

Bob 也是正确的,UILabels 性能更高。但是,我的实现依赖于排除路径,由于暴露的 TextKit 堆栈,这些路径仅在 UITextView 中可用。我不能只使用 UILabel 所以出于绝望我尝试了这个,我的 UITextViews 上的红色消失了:

for (UIView *subview in textView.subviews) {
    subview.backgroundColor = theme.post.backgroundColor;
}

我知道这是一个老问题,但我花了一天的大部分时间来调试它。我希望其他人觉得它有用。

于 2015-01-05T16:52:50.457 回答
7

好吧,UITextView 是一个更高级的视图,它可以滚动并支持自定义文本格式,所以你可能无法让它“不混合”。对于其他视图,您应该选中该opaque复选框,但我怀疑这在这种情况下是否有效。

你最好的选择是使用 UILabel 代替。当用户需要编辑字段时,您可以将其替换为 UITextView,但在滚动时使用 UILabel 应该会大大提高速度。

于 2013-08-16T20:27:09.590 回答