iOS:“viewForHeaderInSection:”委托方法中的自定义视图隐藏了section = 0

时间:2014-01-11 11:49:29

标签: ios objective-c uitableview

我对UITableView有一些问题,它有标题。我需要在每个节头中设置自定义UIView,但问题是在数字0的节中显示标题。

在图片上,我试图展示我的问题 - 在左侧设计我需要做什么,而在右侧则是我所做的。 This is the comparison of screens

我需要在任何部分充分展示带有角色的徽章。

感谢您的帮助!

4 个答案:

答案 0 :(得分:0)

您可以使用隐藏的高度为您的tableHeaderView设置透明tableView。像这样:

UIView *tView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, DESIRED_HEIGHT)]; 
self.tableView.tableHeaderView = tView;

祝你好运!

答案 1 :(得分:0)

这是非常简单的解决方案。只需使用手动nib文件创建自定义UITableviewCell类,然后拖放UITableviewCell,然后设置imageview,标签等。在UITableviewCell上,然后在viewForHeaderinsection内加载相同内容}。我们知道这个方法会返回视图。因此,当在此方法中加载自定义UITableviewCell类时,只返回单元格,因为它也继承自UIView

答案 2 :(得分:0)

制作一个像这样的自定义标题

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *viewHeader = [UIView.alloc initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 28)];
UILabel *lblTitle = [UILabel.alloc initWithFrame:CGRectMake(6, 3, 136, 21)];
[lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue" size:13]];
[lblTitle setTextColor:[UIColor blackColor]];
[lblTitle setTextAlignment:NSTextAlignmentLeft];
[lblTitle setBackgroundColor:[UIColor clearColor]];
[viewHeader addSubview:lblTitle];
return viewHeader;
}

为标题标题制作NSArray。并在上面的方法

中获得此标题

答案 3 :(得分:0)

看起来这可能是iOS7特定问题,而tableView隐藏在导航栏后面?你试过在iOS6上运行吗?我会猜测你不会有同样的问题。尝试将以下代码添加到表视图文件中,看看它是否有帮助:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    // if this is ios7 this code will make the view appear properly below the navigation bar
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = YES;
    }
}