我正在接受一些iOS编程,并试图将UITableView放入故事板。不幸的是,我试图将内容放在视图的顶部,但它正在放置一些空间。我试图在视图中调整值 - >模式,但这似乎没有任何影响。
我已将背景设为绿色并使用边框颜色来显示问题。我不是一个成熟的iOS开发者,所以我认为这是最简单的解决方案而不是复杂的东西。如何使表格视图的内容与顶部齐平?我见过这个Why is there extra padding at the top of my UITableView with style UITableViewStyleGrouped in iOS7但不确定它是否相关。
thx任何帮助
更新了此表视图属性的更改和屏幕截图
答案 0 :(得分:61)
是的,其他问题非常相关。 UITableViewStyleGrouped
通过插入额外的填充...将每个部分划分为“组”...类似于iOS7之前的版本,但默认情况下是清除而不是彩色,而只是在顶部而不是一直到处。如果您不想默认填充,请使用UITableViewStylePlain
。
否则,如果您需要保持样式相同,请执行此链接推荐的其他内容并更改内容插入内容:
self.tableView.contentInset = UIEdgeInsetsMake(-36, 0, 0, 0);
或者执行此海报建议的内容并将tableHeaderView
的{{1}}设置为height
,即差不多.-1
:
0
答案 1 :(得分:58)
通过在Storyboard中选择xib或控制器,转到View Controller的属性检查器。取消选中布局中的调整滚动视图插入。它将解决问题
答案 2 :(得分:6)
在Swift中,您只需要将以下属性设置为false。
self.automaticallyAdjustsScrollViewInsets = false
答案 3 :(得分:5)
这对我来说非常容易和完美。 在故事板中选择一个放置UITableView的控制器。
YouStoryboard.storyboard> YouViewController>属性检查器>取消选中 - 调整滚动视图插图。
确保选择UIViewController而不是UITableView。
答案 4 :(得分:4)
每个人都在谈论这个self.automaticallyAdjustsScrollViewInsets
选项
然而,这对我来说根本不起作用。对我有用的是将“内容插入”属性设置为Never
。
这是一个恼人的问题。
答案 5 :(得分:1)
斯威夫特:
override func viewWillAppear(animated: Bool) {
self.edgesForExtendedLayout = UIRectEdge.None
OR
self.moduleListTableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0);
OR
self.automaticallyAdjustsScrollViewInsets = false
}
答案 6 :(得分:1)
试试这个......
self.tableView.contentInset = UIEdgeInsetsMake( 20, 20 , 0, 0)
答案 7 :(得分:1)
在swift 3.0中,我希望能帮到你
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNormalMagnitude
}
答案 8 :(得分:1)
这是通过Storyboard轻松修复的方法:
选择表格视图>尺寸检验员>内容插入:从不
答案 9 :(得分:0)
此问题的原因: -
在ViewDidLoad中: -
self.edgesForExtendedLayout = UIRectEdge.None
self.automaticallyAdjustsScrollViewInsets = false
不需要这样的东西: -
self.myTableview.contentInset = UIEdgeInsetsMake(-56, 0, 0, 0)
在heightForHeaderInSection
委托中: -
if section == 0
{
return 1
}
else
{
return 40; // your other headers height value
}
在viewForHeaderInSection
委托中: -
if section == 0
{
// Note CGFloat.min for swift
// For Objective-c CGFLOAT_MIN
let headerView = UIView.init(frame: CGRectMake(0.0, 0.0, self.myShaadiTableview.bounds.size.width, CGFloat.min))
return headerView
}
else
{
// Construct your other headers here
}
答案 10 :(得分:0)
答案 11 :(得分:0)
这对我迅速起作用:
tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNormalMagnitude))