由于使用分组样式的表视图的设计在iOS 7中发生了很大的变化,我想隐藏(或删除)第一节标题。到目前为止,我还没有做到这一点。
经过简化,我的代码如下所示:
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return 0.0f;
return 32.0f;
}
- (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 0) {
UIView* view = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 640.0f, 0.0f)];
return view;
}
return nil;
}
- (NSString*) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return nil;
} else {
// return some string here ...
}
}
如果我返回的高度为0,则不会使用节索引0调用其他两个方法。但是,仍然使用默认高度绘制空节标题。(在iOS 6中,调用这两个方法。但是,可见结果是相同的。)
如果返回不同的值,则节标题将获得指定的高度。
如果我返回0.01,它几乎是正确的。然而,当我在模拟器中打开“颜色未对齐图像”时,它会标记所有表视图单元格(这似乎是一个逻辑结果)。
问题UITableView的答案:从空部分隐藏标题似乎表明一些人成功地隐藏了部分标题。但它可能适用于普通样式(而不是分组样式)。
到目前为止,最好的折衷方案是将高度返回0.5,从而在导航栏下方形成一条稍粗的线。不过,如果有人知道如何完全隐藏第一节标题,我将不胜感激。
最新消息
根据卡格拉的分析,(https://stackoverflow.com/a/19056823/413337),仅当表视图包含在导航控制器中时,问题才会出现。
这个答案对我和我的团队来说都很有趣,而且很有魅力
原因:
我们观察到,如果第一个视图是UITableView,则这只会发生在视图层次结构中的第一个视图中。因此,除了第一个部分外,所有其他类似的UITableView都没有这个恼人的部分。我们尝试将UITableView移出视图层次结构中的第一个位置,一切都按预期进行。
这是如何在UITableView(分组样式)中隐藏第一个节标题。
Swift 3.0
>
在heighForHeaderInSect方法中,返回最小正数。(不是零!)
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
}
我有一个对我来说相当干净的工作环境。所以我要回答我自己的问题。
由于0作为第一部分标题的高度不起作用,我返回1。然后我使用ContentInset来隐藏导航栏下面的高度。
目标-C:
- (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);
}
斯威夫特:
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return section == 0 ? 1.0 : 32
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.contentInset = UIEdgeInsets(top: -1, left: 0, bottom: 0, right: 0)
}
在视图控制器中,我只有一个UITableView。在IB中,我制作了标题 使用上述代码,页脚部分被隐藏。但是不能把标题也隐藏起来。 查看解决方案的其他链接,我还在视图中添加了TableView,向TableView添加了约束,但标题部分仍然是它们的。 我哪里做错了?如何摆脱它?
在另一个线程中解释了在故事板中将标题放置到UITableView的方法,即将组件(在我的示例中是视图)拖放到第一个原型单元的顶部。比作为tableview标题(而不是节)更粘 我的问题是,如果您拖放搜索栏并运行应用程序,搜索栏位于导航栏的后面,您可以向下拉动tableview并看到搜索栏。 如果对视图执行相同的操作,则永远不能通过向上滚动tableview将视图放在一边,因为它始终可见。 有人知道
我创建了这个部分标题,不幸的是,我不知道如何在右边添加一些填充。 这是我的密码:
我从mysql中选择了一些数据。然后我想格式化它。数据如下所示: 我想date,和type,并
问题内容: 如何快速隐藏第一个ViewController或特定ViewController的导航栏? 我在中使用了以下代码: 以及: 两种方法都对所有ViewController隐藏导航控制器。 问题答案: 如果您知道其他所有视图都应显示该栏,则可以将其重新设置为可见。 在Swift中:
Since 8.6 hideTitleLoading 隐藏标题栏loading 使用方法 AlipayJSBridge.call('hideTitleLoading'); 代码演示 显示/隐藏全局loading框 <h1>点击下面按钮查看效果</h1> <a href="javascript:void(0)" class="btn show">显示loading</a> <a href="jav