2

ユーザーがボタンを押すと展開/折りたたむことができる拡張可能な UITableView があります。その方法は、ボタンが押されたときにコンテンツを変更し、contentSize.height をテーブルビューの高さに割り当てることです。iOS 6 では正常に動作します。

しかし、iOS 7 では、テーブルビューの高さにどのような値を設定しても、高さが変更されず、新しいコンテンツが切り取られたように表示されます。高さは絵コンテの原点高さにこだわるようです。しかし、テーブルビューの高さを印刷すると、設定した値になります。

高さを変更する方法は次のとおりです。

//Do some change to the content...
[tableview reloadData];
NSLog(@"height: %f, contentHeight: %f", tableview.frame.size.height, tableview.contentSize.height);// print height: 60, contentHeight: 160
CGRect frame = tableview.frame;
frame.size.height = tableview.contentSize.height;
tableview.frame = frame;
NSLog(@"height: %f, contentHeight: %f", tableview.frame.size.height, tableview.contentSize.height);// print height: 160, contentHeight: 160

何か案は?

ps テーブルビューは UIScrollView にあります。(それが重要な場合。)

4

1 に答える 1

0

あなたの問題はスクロールビューだと思います。このようなことを試してください:

CGRect screen = [[UIScreen mainScreen] bounds];
CGSize scrollViewContentSize = CGSizeMake(screen.size.width, screen.size.height);
[self.scrollView addSubview:tableview];
scrollViewContentSize.height += tableview.frame.size.height;
[self.scrollView setContentSize:scrollViewContentSize];
[self.view addSubview:self.scrollView];
于 2014-01-22T08:04:48.097 に答える