0

我想在我的 uitableviewheader 中放置一个自定义视图,这个自定义视图有一个 UILabel 和一个 UITextView,标签有一个固定的大小,而 uitextview 需要根据 uitextview 的内容进行更改。为此,我使用以下代码:

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {

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

headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,100)];
headerView.backgroundColor = [UIColor blueColor];


NSString *userString = [user username];
UILabel *userLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
[userLabel setTextAlignment:NSTextAlignmentCenter];
[userLabel setText:userString];
userLabel.backgroundColor = [UIColor redColor];
[headerView addSubview:userLabel];

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 40, 320, 60)];
NSString *postString = [currentPost objectForKey:@"postTextKey"];
textView.text = postString;

[headerView addSubview:textView];

CGRect frame = textView.frame;
frame.size.height = textView.contentSize.height;
textView.frame = frame;

frame = headerView.frame;
frame.size.height = textView.frame.size.height+40;
headerView.frame = frame;

self.tableView.tableHeaderView.frame = headerView.frame;

return headerView;

}

问题是,如果 headerview 的高度正确,则 tableviewheader 是错误的。错误在哪里?

4

1 回答 1

0

1)tableHeaderView与节标题视图 ( headerViewForSection:)不同
2) 如果要更改高度,请在- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section方法中指定它,然后reloadData在高度更改时调用该方法。

注意:你不想经常这样做。

于 2013-02-25T20:38:38.513 回答