UITextView与白色背景显示作为颜色混合层在仪器和模拟器中

时间:2013-08-16 20:20:13

标签: ios xcode uitextview instruments blend

所以,我在Cell中有一些UILabel和UITextViews。我的桌子滚动有点慢,我尝试了iOS模拟器和乐器中提供的“颜色混合层”实用程序。它以红色显示混合的图层并导致慢速滚动。

所有的元素都是混合的,所以我把一个白色背景放到UILabels上(和单元格一样),现在UILabel还可以(之前有clearColor作为背景)。

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

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

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

提前致谢!

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

2 个答案:

答案 0 :(得分:20)

我也在努力解决这个问题。我有一个UITableView在iPhone上滚动得很好,但在iPad上只是疯狂地抖动。我打开了仪器中的Color blending layers,就像你说的那样,opaque = YES;backgroundColor = [UIColor whiteColor];似乎无效。

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

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

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

答案 1 :(得分:7)

嗯,UITextView是一个更高级的视图,可以滚动并支持自定义文本格式,因此您可能无法将其设置为“不混合”。对于其他视图,您应该检查opaque复选框,但我怀疑这是否适用于这种情况。

您最好的选择是使用UILabel。当用户需要编辑字段时,可以用UITextView替换它,但滚动时使用UILabel可以大大提高速度。