hta*_*oya 15 iphone uitableview ios
我有一个带有自定义标题视图的表,无论何时,或者我为部分选择了什么值,我总是得到零值.我有另一张表有同样问题的表.
如果我打印[tableview subviews]的值,我可以看到标题视图,但我不知道为什么该方法不会返回任何内容.
我要做的是获取headerview中的activityIndicator并启动它或使用方法调用来停止它.
标题总是画好,但我无法获得参考.另外,调用headerViewForSection:不会调用委托方法,这是正常的吗?
footerViewForSection: 有同样的问题
一些代码:
- (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    NSArray* objs = [[NSBundle mainBundle] loadNibNamed:@"iPadTableCells" owner:nil options:nil];
    UIView* header = [objs objectAtIndex: 0];
    UIActivityIndicatorView* activityIndicator = (UIActivityIndicatorView*) [header viewWithTag:5];
    [activityIndicator startAnimating]
    return header;
}
从任何方法:
    UIView* headerView = [tableview headerViewForSection: section];  //returns nil
    if (headerView) {
        UIActivityIndicatorView* activityIndicator = (UIActivityIndicatorView*)[headerView viewWithTag: 5];
        [activityIndicator stopAnimating];
    }
Aar*_*ger 15
来自文档:
要使表视图知道页眉或页脚视图,您需要注册它.您可以使用
registerNib:forHeaderFooterViewReuseIdentifier:或registerClass:forHeaderFooterViewReuseIdentifier:方法执行此操作UITableView.
(Swift等价物是   register(_:forHeaderFooterViewReuseIdentifier:).)
因此,您需要注册nib,然后使用重用标识符来获取它,而不是直接从应用程序包中提取它,这就是您现在正在做的事情.
...如果你想使用这个headerViewForSection方法.
或者,您可以检查是否继续在viewForHeaderInSection方法内旋转,然后发送只是调用:
[self.tableView beginUpdates];
[self.tableView endUpdates];
刷新节标题.
(请注意,这种替代方法会破坏并重新创建整个视图,因此如果您有一个包含大量数据的大表,那么它可能效率不高.)
自问这个问题以来已经有一段时间了,最近我遇到了类似的问题并且在这里问了我自己的问题: UITableView -headerViewForSection返回(null)
我相信我有答案.
UITableViewHeaderFooterView子类并命名它CustomHeaderViewiPadTableCells在这里命名)CustomHeaderView@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;使用以下代码:
- (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    static NSString *HeaderIdentifier = @"header";
    CustomHeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:HeaderIdentifier];
    if(!header) {
        NSArray* objs = [[NSBundle mainBundle] loadNibNamed:@"iPadTableCells"
                                                      owner:nil
                                                    options:nil];
        header = [objs objectAtIndex: 0];
    }
    [header.activityIndicator startAnimating];
    return header;
}
然后你可以这样访问它:
CustomHeaderView *headerView = (CustomHeaderView*)[tableView headerViewForSection:section];
[headerView.activityIndicator stopAnimating];
UITableViewHeaderFooterView您所需要做的就是为需要返回的标题视图创建一个实例
 func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let sectionHeaderView = UITableViewHeaderFooterView()
        //customize your view here
        return sectionHeaderView
    }
| 归档时间: | 
 | 
| 查看次数: | 12954 次 | 
| 最近记录: |