我有一个UITableView,我动态设置Frame,以便将其大小调整为项目数。我这样做是因为桌面视图可以通过手机顶部的拖动来“滑动”。 UITableView在视图的nib中定义。
每当包含此滑动UITableView的视图消失时(如调用viewDidDisappear),UITableView的Frame将重置为nib中的值(我将其设置为44,即静态页脚的大小)。
我的问题是两部分:
对于背景,我已经用尽了所有合理的视图生命周期方法。
一个有趣的注意事项是我尝试在ViewDidAppear中设置Frame,它在重现我的“bug”时被击中,并且我已经验证了Frame.Height是方法结束时所需的值,尽管当时引脚落在最后,框架高度仍然在44. tableView IBOutlet我是不是在视图中实际加载的那个?
public override void ViewDidAppear (bool animated)
{
RetractMemoryTableAnimation(0);
// Frame is correct after this line (Height > 44)
// But the Frame in my view persists to a height of 44
this.tableView.Frame = new RectangleF(this.tableView.Frame.Location.X, this.tableView.Frame.Location.Y,
this.tableView.Frame.Size.Width, this.CalculatedTableViewHeightWithFooter);
}
答案 0 :(得分:4)
在编写自定义代码以设置UIView
的框架时,如果视图似乎已自动调整大小,请务必将AutoresizingMask
设置为UIAutoresizingMask.None
。