这是我在这里发表的第一篇文章。 我需要提一下,我不是一名程序员,我是一名用户体验设计师,我正在努力使用Xcode Storyboard +为我的同伴Engeneers打造更好的原型。
我正在尝试为我的个人资料视图提供“原生”外观。 现在我的个人资料视图是一个UITableViewController。
我意识到“原生”外观带有应用于TableView的“分组”设置。
以下是我之前版本的比较,而不是“分组”
正如您所看到的,由于标题,分组版本推送了我的TableView。我没有在页眉设置中输入任何文字。然而,这个空间是固定的。{/ p>
我想摆脱那个空间。
我在Stack上发现了这个代码,听起来应该解决我的问题。
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
let headerHeight: CGFloat
switch section {
case 0:
// hide the header
headerHeight = CGFloat.leastNonzeroMagnitude
default:
headerHeight = 21
}
return headerHeight
}
我在super.viewDidLoad()中的我的ProfileTableViewController.swift中添加了这个。 但是空间仍然存在,我现在已经没有选择了。
也许问题来自页眉/页脚设置,甚至不是章节标题......甚至不再确定。
答案 0 :(得分:4)
@Pragnesh提供的最新两个选项对我有用。 我不确定转换tableview是有史以来最好的做法,但它现在可以解决这个问题。
我确信还有一种方法可以隐藏节标题。
我一直在使用这个
self.tableView.contentInset = UIEdgeInsetsMake(-35, 0, 0, 0)
答案 1 :(得分:2)
试试这个:
在storyboard / xib中:
1. Click TableView.
2. Click on Size Inspector on Right side.
3. You will see SectionHeight: Header and Footer.
4. Make both these values 1.
5. It will remove the extra spaces.
答案 2 :(得分:1)
您可以在viewDidLoad()中尝试此代码:
1)。在viewDidLoad()中:
self.automaticallyAdjustsScrollViewInsets = false
2)。您可以编写此viewDidLoad():
self.tableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0)
3)。或者你可以这样写:
self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, -20, 0);
答案 3 :(得分:1)
将1设置为第一个节头的高度。然后我使用contentInset隐藏导航栏下方的高度。给下面 -
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return 1.0f;
return 32.0f;
}
- (NSString*) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return nil;
} else {
// return some string here ...
}
}
- (void) viewDidLoad
{
[super viewDidLoad];
self.tableView.contentInset = UIEdgeInsetsMake(-1.0f, 0.0f, 0.0f, 0.0);
}
答案 4 :(得分:0)
其他答案可行,但我宁愿不要乱用硬编码的插图。
@niku解决方案的一种改进可以使用CGFloat.leastNonzeroMagnitude
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if section == 0 {
return CGFloat.leastNonzeroMagnitude
}
// return the height for the other sections
}