【发布时间】:2012-08-13 18:01:16
【问题描述】:
我在尝试使用 iOS5 和 Storyboard 以编程方式调整托管在 UIViewController 中的 UITableView 的高度时遇到问题。 VC 显示主/详细记录样式,UITableView 显示详细记录。根据显示的主记录类型,屏幕底部可能需要一组按钮。如果不需要按钮,那么我希望UITableView 扩展它的高度以利用可用空间。我正在使用以下代码:
CGRect tableFrame = [tableListView frame];
if (blnApprovalRec == YES)
tableFrame.size.height = 127;
else
tableFrame.size.height = 170;
[tableListView setFrame:tableFrame];
只要主记录发生变化,包括屏幕首次加载到viewDidLoad 时,就会调用此代码。问题是当 VC 加载时,UITableView 不使用指定的大小进行绘制 - 它只是使用 IB 的默认大小进行绘制。一旦用户更改了主记录以重新加载表,那么一切正常,并且大小会根据需要更改。我尝试使用 setNeedsDisplay、setNeedsLayout 和 reloadData 强制重绘,但这些都不起作用。
【问题讨论】:
-
上面的代码你是用什么方法调用的?
-
这段代码是不是放在了viewDidLoad之类的方法里?
标签: iphone ios uitableview resize frame