我想在我的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是错误的。错误在哪里?
答案 0 :(得分:0)
1)tableHeaderView
与章节标题视图(headerViewForSection:
)不同
2)如果要更改高度,请在- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
方法中指定高度,然后在高度发生变化时调用reloadData
方法。
注意:你不想经常这样做。