美文网首页iOSiOS DeveloperiOS开发
UITableViewWrapperView 的frame位置和

UITableViewWrapperView 的frame位置和

作者: 枫海 | 来源:发表于2016-11-10 10:21 被阅读314次

前提:UINavigationController的navigationBar的透明度不为1
在UINavigationController下的UITableView可能会出现偏移,这是UITableViewWrapperView在作怪。

第一种方法(不一定管用):
前提:tableviewstyle改成plain
在控制器里添加如下代码:

self.navigationController.automaticallyAdjustsScrollViewInsets = NO;
// 将navigationBar的透明度改为1
self.navigationController.navigationBar.translucent = YES; 

第二种方法(很土但有效):
前提:tableviewstyle改成plain
1、tableview不是显示在控制器的最上方就会出现这种问题。tableview必须显示在控制器的最上方,所以在最后添加[self.view addSubview:self.tableView]

2、若你有控件必须显示在tableview的上方(如悬浮按钮之类的),可以在

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
// 添加tableview
    [self.view addSubview:self.tableView];
  
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
// 添加显示在tableview上方的控件
}

3、若果你是UINavigationController下的tabbar下创建的控制器中的tableView,你需要在tabbar的item切换代理方法中再次添加一下tableView,其他控件异步延迟一点时间,再在主线程中添加。

相关文章

网友评论

    本文标题:UITableViewWrapperView 的frame位置和

    本文链接:https://www.haomeiwen.com/subject/quatpttx.html