继this question I asked recently之后,我能够成功地在tableview前面显示解释视图,但是我现在遇到一个问题,当tableview第一次加载时,tableview的分隔线在我的解释视图下面可以短暂显示。这是设置解释视图的背景颜色,将其设置为不透明并将其置于前面。这只是一个短暂的闪光,但它是明显的和分散注意力。
以下是我的代码(_explanationView
是UIView
实例变量,我在视图控制器的nil
方法中设置为dealloc
:
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.separatorColor = [UIColor darkGrayColor];
CGRect frame = CGRectMake(50.0f, 120.0f, 220.0f, 155.0f);
_explanationView = [[UIView alloc] initWithFrame:frame];
_explanationView.userInteractionEnabled = NO;
_explanationView.backgroundColor = [UIColor whiteColor];
_explanationView.opaque = YES;
_explanationView.layer.borderColor = [UIColor darkGrayColor].CGColor;
_explanationView.layer.borderWidth = 1.0f;
_explanationView.layer.cornerRadius = 10.0f;
_explanationView.layer.masksToBounds = YES;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 0.0f, 180.0f, 145.0f)];
label.backgroundColor = [UIColor whiteColor];
label.textColor = [UIColor darkGrayColor];
label.numberOfLines = 0;
label.lineBreakMode = UILineBreakModeWordWrap;
label.font = [UIFont systemFontOfSize:14.0f];
label.text = @"Explanation of this screen...";
[_explanationView addSubview:label];
[self.tableView addSubview:_explanationView];
}
我发现我必须将解释视图放在viewDidAppear:
方法的前面,否则tableview的分隔线在下面永久可见。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.tableView bringSubviewToFront:_explanationView];
}
如何阻止tableview的分隔线在我的自定义视图下方短暂显示?