请注意,我将在这个问题中将点称为像素。
我有一个分组UITableView
,有3个部分,每个部分都有一个40像素高的标题视图。表格视图中的第一个标题似乎被系统给出了35像素的y位置。
我已经尝试过使用automaticallyAdjustsScrollViewInsets
和其他一些iOS 7自动作品,但无济于事。
为什么我的UITableView
内容被35像素插入?
FLT_MIN
,0.01f,1.0f或100.0f无法解决问题。
这是我的标题实现:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
UIView *header = (self.headerViews.count > section ? self.headerViews[section] : nil);
return (header.viewHeight ? : FLT_MIN);
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *header = (self.headerViews.count > section ? self.headerViews[section] : nil);
return (header.viewHeight ? header : nil);
}
我也在设置:
- (BOOL)automaticallyAdjustsScrollViewInsets{return NO;}
和
[self setSectionHeaderHeight:FLT_MIN];
答案 0 :(得分:6)
似乎这样:
[self setTableHeaderView:[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, width, FLT_MIN)]];
在初始阶段,self
为UITableView
,将排除前35位。
答案 1 :(得分:2)
有多种方法可以解决您遇到的相同问题,因此有多种解决方案。我将尝试列出我所知道的相应解决方案。其中大多数是从this question复制的。
这是一个常见的问题,因为他们认为问题与他们的UITableView
有关,而且大部分时间实际上都是父UIViewController
。
如果VC
上的NavigationController
嵌入。如上所述here,您将获得35分 y偏移。
<强>解决方案强>
在Xcode版本中&gt; 5在VC
上取消扩展边线&#34;在属性检查器下的顶部栏下删除顶部UITableView
内容插入。
约束:您的VC
有一个主视图,其中包含了所有其他子视图,包括您的{{ 1}}。您需要确保UITableView
中的所有约束 明确设置并且满意/非模糊。
设置UITableView
设置self.navigationController.navigationBar.translucent = YES;
。也可以通过取消选中视图控制器布局的调整滚动视图插入复选框,在故事板上设置此视图。
设置self.automaticallyAdjustsScrollViewInsets = NO;
设置self.edgesForExtendedLayout = UIRectEdgeNone;
设置tableView.separatorInset = UIEdgeInsetsZero;
注意 -35 。负数抵消了视图。
声明此方法(也可用于FooterSection):
tableView.contentInset = UIEdgeInsetsMake(-35, 0, 0, 0);
答案 2 :(得分:0)
是的,当我设置tableview.tableFooterView并自定义设置节标题高度时,出现此问题,那么第一节高度超过35点。
然后我添加
tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNormalMagnitude))
为我工作。