tableview中的自定义标题以3.1.3降低了iPhone 3G的速度

时间:2011-03-04 08:53:45

标签: iphone uitableview

我在使用uitableview自定义标题时遇到两个问题:

1)更大的一点是自定义标题在真正的iPhone 3G 3.1.3上滚动列表的速度正在减慢,同时在模拟器或真正的iPad上保持完美。这是我正在使用的代码:

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

    UIView *headerView = [[HeaderView alloc] init];
    headerView.alpha = 0.7;

    UITextView *label = [[UITextView alloc] initWithFrame:CGRectZero];
    label.textColor = [UIColor whiteColor];

    switch (section) {
        case 0:
            label.text = @"Mattina";
            break;
        case 1:
            label.text = @"Pomeriggio";
            break;
        case 2:
            label.text = @"Sera";
            break;
        default:
            label.text = @"";
            break;

    }

    [headerView addSubview:label];

    return headerView;
}

2)使用上面的代码,标题标签没有显示......哪里出错?

谢谢!

3 个答案:

答案 0 :(得分:1)

我在这看到两个问题:

  1. 为什么要将标签的框架设置为CGRectZero?它没有默认设置的自动调整属性,因此它不会拉伸以适合Headerview。我明确地设置了宽度和高度,只是为了确定,但这可能会起到作用:

    label.autoresizingMask = UIViewAutoresizingFlexibleWidth;

  2. 为什么使用UITextView而不是UILabel?它并不广为人知,但UITextView在放置在可滚动视图后显示内容存在一些问题。它并不总是正确刷新。此外,这是一个过度使用,我个人觉得能够在另一个滚动视图中滚动视图,即UITableView中的UITextView,这是违反直觉的。

答案 1 :(得分:0)

@Abramodj我认为你需要做

[label setBackgroundColor:[UIColor clearColor]];

答案 2 :(得分:0)

缓慢是由泄漏引起的。解决方案只是在headerView对象上设置自动释放:

UIView *headerView = [[[HeaderView alloc] init] autorelease];