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とは異なり ます。2) 高さを変更する場合は、メソッドで指定し、高さが変更された場合はメソッドを呼び出します。 headerViewForSection:
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)sectionreloadData

注: 頻繁に行う必要はありません。

于 2013-02-25T20:38:38.513 に答える