【问题标题】:tableView:viewForHeaderInSection: default value?tableView:viewForHeaderInSection: 默认值?
【发布时间】:2010-12-05 21:08:25
【问题描述】:

我想要一个自定义的部分标题,其余部分为默认标题。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
     return ???;
}

我要返回什么来只提供默认标题视图?

【问题讨论】:

    标签: ios objective-c uitableview return return-value


    【解决方案1】:

    默认标题视图是nil,根本没有标题!

    【讨论】:

    • 谢谢 :) 原来是因为我正在做的其他事情而崩溃。
    【解决方案2】:

    好吧,文档没有说明如何提供默认视图。您是否尝试过返回 nil 看看会发生什么?

    如果这不起作用,这是我建议的解决方法(这是在您需要在显示默认标题和动态显示自定义标题之间切换的假设下运行的):

    • BOOL ivar 添加到名为shouldShowDefaultHeader 的tableview 委托对象。
    • 重写respondsToSelector 方法以执行以下操作:
    if (shouldShowDefaultHeader == YES && [NSStringFromSelector(aSelector) isEqual:@"tableView:viewForHeaderInSection:"]) { return NO; }
    return [super respondsToSelector:aSelector];
    • 相应地切换shouldShowDefaultHeader ivar。

    编辑:阅读其他答案,返回 nil 应该可以正常工作,而不是使用选择器。但是,无论如何您都可以这样做,这很酷。 :)

    【讨论】:

      【解决方案3】:

      正如 Saeed 所说,默认返回值为“nil”。

      如果您想要一个视图,您可以在该方法中分配一个自定义视图并使其返回该视图。

      例如,如果您想要一张图片作为该部分的标题,您应该执行以下操作:

      [view addSubview:pictureView];
      
      return view;
      

      这将为您传入其索引的部分返回该视图。

      【讨论】:

        猜你喜欢
        • 2011-02-23
        • 2018-09-12
        • 2015-05-22
        • 1970-01-01
        • 2019-07-05
        • 2012-03-17
        • 2012-07-13
        • 2015-06-24
        • 2013-09-24
        相关资源
        最近更新 更多