今天遇到了一個很奇怪的問題,在tableview頁面隱藏導(dǎo)航欄之后,tableview其實位置不對.(不多贅述,直接看代碼吧!)
修改前代碼:
- (void)viewDidLoad {
[superviewDidLoad];//只有隱藏了導(dǎo)航欄才會出現(xiàn)這個bug,如果導(dǎo)航欄沒有隱藏,就沒有任何問題[self.navigationControllersetNavigationBarHidden:YES];
self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, KeyWidth, KeyHeight-44) style:UITableViewStyleGrouped];
self.tableView.backgroundColor = LSBgColor;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.delegate = self;
self.tableView.dataSource = self;
//設(shè)置滾動條位置
self.tableView.scrollIndicatorInsets = self.tableView.contentInset;
//注冊行 cell
[self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([LSPraiseWallCell class]) bundle:nil] forCellReuseIdentifier:LSPraiseWallCellId];
//先隨意設(shè)置一個占位高度
self.tableView.rowHeight = 10;
self.edgesForExtendedLayout = UIRectEdgeNone;
[self.view addSubview:self.tableView];
}
代碼運行效果如下:
請注意,tableview的其實位置此時并不是從(0,0)開始的.
如果遇到這種情況,最簡單的辦法就是在tableview初始化之前加上下面這段代碼
?//在self.view上添加子視圖
UIView * view = [[UIView alloc] initWithFrame:CGRectZero];
[self.view addSubview:view];
修改后效果圖:
快試一下,是不是問題已經(jīng)解決了呢?
恩,解決了就好,不用謝,我也是順手記下來而已,嘻嘻!