所以,我在Cell中有一些UILabel和UITextViews。我的桌子滚动有点慢,我尝试了iOS模拟器和乐器中提供的“颜色混合层”实用程序。它以红色显示混合的图层并导致慢速滚动。
所有的元素都是混合的,所以我把一个白色背景放到UILabels上(和单元格一样),现在UILabel还可以(之前有clearColor作为背景)。
我对UITextViews做了同样的事情,我选择了白色背景,但它们仍然在屏幕上显示为混合图层(用红色着色)。
每个UITextView配置都在界面构建器中完成,我尝试了每个选项,但它们仍然显示为红色。
我必须对UITextViews做什么才能使它们的图层不混合?
提前致谢!
PD:抱歉,但我不能包含捕获
答案 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可以大大提高速度。