iOS 7 UITableView:如何删除导航栏和第一个单元格之间的空间
我的问题是:在分组的UITableView iOS 7中有一个从表顶部和第一个单元格的差距。 
奇怪的是,当我第一次加载内容时,表格看起来像第一个图像,但是当我向下滚动时,在第一个单元格出现在第一个单元格之间:


风格朴素这种行为没有出来,但不幸的是我需要使用分组表视图。
任何想法?
 只要在你的ViewDidLoad方法中join这个 
 self.automaticallyAdjustsScrollViewInsets = NO; 
答案对我和我的团队来说非常有趣,而且像一个魅力
- 在Interface Builder中,只需在视图层次结构中的另一个视图下移动tableview。
原因:
我们观察到,如果这个第一个视图是一个UITableView的话 , 这只会发生在视图层次结构中的第一视图 。 所以,所有其他类似的UITableViews没有这个烦人的部分,除了第一个。 我们尝试将UITableView移出视图层次结构中的第一位,并且所有内容都按预期工作。
它解决了我的类似问题:
 if ([[UIDevice currentDevice].systemVersion floatValue] >= 7){ tableView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0); } 
 通过selectStoryboard中的xib或控制器,转到View Controller的属性检查器。 取消选中布局中的调整滚动查看插图 。 这将解决问题 
如果你正在使用UITableView分组风格,只有1组,使用普通风格,而不是解决你的问题。
 UITableViewController *tableViewController; tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 
 分组typestableView最简单的解决scheme是: 
 tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)]; 
伙计们! 我有同样的问题。 TableView出现在导航栏和第一个单元格之间的可用空间。 这段代码救了我:
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if (section == 0) { return 10; } else return 2; } 
UITableView本身上面有一个空格,而且在单元之间也有空格。 find我的解决scheme在上面的两个不同的答案..再次发布,以便没有人会错过这两个解决scheme。
这从上面删除了空间:
 self.automaticallyAdjustsScrollViewInsets = NO; 
并删除单元格下方的空格:将UITableView的'Style'属性设置为'Plain'
 我正在使用Xcode 7.3.1 , iOS9和iOS9 swift 2 。 我想分享一下对我有用的东西: 
 只要在你的ViewDidLoad方法中join这个 
 self.automaticallyAdjustsScrollViewInsets = false; 
从iOS 7开始,您将自动获取组头和一些空间。 将您的应用与“设置”应用进行比较,即可看到。 您可以通过告诉UITableView尽可能小地设置标题高度来解决这个问题。 请参阅如何隐藏第一个组标题 。
我意识到这是很久以前的答案,但是对于遇到类似情况的其他人,我将分享最终为我工作的东西:
如果您正在使用xib,请select顶层视图,并在“属性”检查器的“模拟度量标准”区域中将“状态栏”设置为“无”。 修正了我的间距问题。
对我来说这是行不通的
 self.automaticallyAdjustsScrollViewInsets = NO; 
这只会导致表视图位于NavigationBar下。
什么对我来说是进入我的故事板,并调整我的tableView。 看来我的tableView有一个20px的差距在顶部允许statusBar。 我把它缩小了,所有东西都排得很整齐。
在一个非常奇怪的情况下,我在桌面的顶部看到了这个额外的空间。
 在我的导航堆栈中添加了一个UIScrollView作为我的第一个控制器的根视图,如果我将下一个控制器作为Show Detail segue呈现,则我的下一个控制器将在其视图之上有空间。 
 对我来说,解决scheme是将Present Modally改变为Present Modally ,一切恢复正常。 
  Segue变化最奇怪的部分是, 在我添加我的根视图是一个UIScrollView ,我的Show Detail segue模态地呈现下一个控制器。 然而, 在我添加了根UIScrollView , Show Detail segue正在推进下一个控制器(这不是我想要的)。 
为了解决这个问题,请确保在ViewController上取消选中此字段:
在ViewController >> Attibutes Inspector >>布局(未选中 – 调整滚动查看插图 )
示例图像
如果这还不够,请在TableView上试试这个,将Style设置为Plain :
示例图像
这将解决您的问题
有一个类似的问题,甚至设置自动调整ScrollViewInsets为NO。 这对我解决了:
 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section; { return CGFLOAT_MIN; } 
 在UIViewController.h iOS9 SDK有一个方法: 
 @property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES 
不是一个财产,所以
 self.automaticallyAdjustsScrollViewInsets = NO; 
应该
 -(BOOL)automaticallyAdjustsScrollViewInsets{ return NO; } 
- Grand Central Dispatch(GCD)与performSelector – 需要更好的解释
- 未logging的NSURLErrorDomain错误代码(-1001,-1003和-1004)使用StoreKit
- iOS – closures应用程序时的CoreLocation和geofencing
- 如何打开手机设置,当一个button被点击ios
- 如何禁用内容适合在屏幕上的UITableView表中的滚动
- 显示启animation面的时间超过默认的秒数
- 数据input自定义视图的Swift示例(自定义应用程序内键盘)
- 如何旋转他们自己的中心周围的子视图?
- iPhone UIButton – 图像的位置