这张图片是错误图片,我的代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBarHidden = YES;
naviview = [[UIImageView alloc] init];
naviview.backgroundColor = [UIColor colorWithHexString:@"fcfcfc"];
naviview.frame = CGRectMake(0, 0, VIEW_BOUNDS.width, 64);
[self.view addSubview:naviview];
self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, VIEW_BOUNDS.width, self.view.bounds.size.height-62-TABBARHEIGHT) style:UITableViewStylePlain];
self.tableView.showsHorizontalScrollIndicator = NO;
self.tableView.showsVerticalScrollIndicator = NO;
self.tableView.backgroundColor = [UIColor grayColor];
self.tableView.delegate = self;
self.tableView.dataSource = self;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
[self.view insertSubview:_tableView belowSubview:self.naviview];
}
如果我使用[self.view insertSubview:_tableView belowSubview:self.naviview];
,则单元格具有偏移量,如果使用[self.view addSubview:_tableView]
则为buf,则单元格将是正确的。我想知道导致抵消的原因,有人可以告诉我吗?
非常感谢!
答案 0 :(得分:0)
因为当你使用addSubview
时,它会被添加到superview上,而tableview的框架将用视图的框架计算。但是在insertSubView
中添加了navView。可能有可能使用不同的帧计算tableView帧。
您可以通过将tableView框架高度设为0来验证它,然后尝试使用insertSubView
。