Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 重新加载时停止透明UITableView节标题闪烁_Ios_Objective C_Uitableview_Alpha Transparency - Fatal编程技术网

Ios 重新加载时停止透明UITableView节标题闪烁

Ios 重新加载时停止透明UITableView节标题闪烁,ios,objective-c,uitableview,alpha-transparency,Ios,Objective C,Uitableview,Alpha Transparency,我遇到了一个奇怪的视觉故障,即重新加载我的UITableView的一部分会导致半透明标题视图(alpha=0.25)短暂地变暗,就好像它在旧标题视图的顶部添加了另一个标题视图副本,然后删除了前一个 我的标题视图本身是动态生成的UIImageView,但是我将其简化为UIView,背景色为[[UIColor blackColor]colorWithAlphaComponent:0.25],它仍然存在以下问题: - (UIView *)tableView:(UITableView *)tableVi

我遇到了一个奇怪的视觉故障,即重新加载我的
UITableView
的一部分会导致半透明标题视图(alpha=0.25)短暂地变暗,就好像它在旧标题视图的顶部添加了另一个标题视图副本,然后删除了前一个

我的标题视图本身是动态生成的
UIImageView
,但是我将其简化为
UIView
,背景色为
[[UIColor blackColor]colorWithAlphaComponent:0.25]
,它仍然存在以下问题:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0,0,tableView.width, kModPopHeaderHeight)];
    view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.25];
    view.opaque = NO;
    return view;
}
如您所见,我将
不透明
设置为
,但这没有任何效果。我还尝试在小节上保留一个先前生成的视图的字典,如果已经创建了,则返回现有视图(以测试我的理论,它显示了两个视图重叠),但这也出人意料地没有效果。不管怎样,它都会闪烁


请注意,如果我将标题的alpha设置为
1.0
,则不会出现视觉故障,因此它显然与透明度有关。并不是每次点击(重新加载)都会发生这种情况,但大多数情况下都会发生。我只是想不出我需要改变什么才能让它画好。如果您有任何建议,我们将不胜感激。

好的,基于我保留现有headerViews索引的想法,我实际上自己解决了这个问题。我第一次尝试的是调用
[existingView removeFromSuperview]
,但根本不起作用

相反,我将它改为
existingView.hidden=YES
,闪烁的声音神奇地消失了!好了。虽然我无法解释为什么这样做有效,而
removeFromSuperview
没有,但如果其他人遇到此问题,请尝试在返回新视图之前隐藏现有视图