使用分组的UITableView中的viewForHeaderInSection替换默认标头

时间:2015-10-19 21:40:30

标签: ios iphone uitableview uiactivityindicatorview

我想在UITableView中的部分标题之后放置一个uiactivityindicator。我正在努力(使用表格的第一部分) viewForHeaderInSection。这与本机Settings.app

中WiFi设置中的微调器视图类似

代码没有给出我想要的东西

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if( section == 0 ) {

          UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 16.0)];

        UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(20.0, 10.0, 320.0, 16.0)];

        headerLabel.backgroundColor = [tableView backgroundColor];
        headerLabel.text = NSLocalizedString(@"Choose a Network...", @"Choose a Network...");
        headerLabel.font = [UIFont boldSystemFontOfSize:16.0];
        headerLabel.textColor = [UIColor colorWithRed:61.0/255.0 green:77.0/255.0 blue:99.0/255.0 alpha:1.0];
        headerLabel.shadowColor = [UIColor colorWithWhite:1.0 alpha:0.65];
        headerLabel.shadowOffset = CGSizeMake(0.0, 1.0);

        [header addSubview:headerLabel];

        self.searchNetworks.frame = CGRectMake(190.0, 18.0, 0.0, 0.0);
        [header addSubview:self.searchNetworks];

        return header;


    }

    return nil;
}

我希望我的自定义视图能够准确地获取默认视图的位置。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您目前用于放置活动指示器的代码很好并且可以使用。我看到的唯一问题是,如果您希望hidesWhenStopped始终可见,则不会明确将NO设置为startAnimating。否则,您必须调用tableView使其可见(并以此方式调用它来设置动画)。

此外,根据您backgroundColor的颜色,您可能无法看到指示符。如果是这种情况,您可以更改tableView的{​​{1}}(如果您使用的是分组的tableView),或部分标题的backgroundColor,或者活动指标的color属性。

这些是我的建议!如果有帮助,请告诉我。

  

供参考:

     

您可以通过调用 startAnimating stopAnimating 方法来控制活动指示器的动画效果。要在动画停止时自动隐藏活动指示器,请将 hidesWhenStopped 属性设置为YES。

     

从iOS 5.0开始,您可以使用颜色属性设置活动指示器的颜色。

     

来自UIActivityIndicator documentation