我的应用程序中有UISplitViewController
(MvvmCross / Xamarin iOS),由于某些原因,我无法让内容尊重可用视图区域的尺寸。
在屏幕截图中显示的情况下,主视图正在托管UIViewController
,其中包含TableView
。所有布局都是通过约束来完成的,并且在iPhone模拟器中运行时可以自行运行。
当我切换到在iPad上运行时,我在演示者中的一些自定义代码在UISplitViewController
的主面板中显示了相同的视图,但在这种情况下,约束似乎被忽略了,我最终看起来像这样:
正如您所见,表格单元格的右侧现在远离UISplitViewController
主面板的可视区域。
UITableView
和UITableCell
都使用View.Frame
作为初始尺寸(我也试过View.Bounds
)。
如何让单元格和/或表格尊重UISplitViewController
可用空间的边界?
答案 0 :(得分:1)
感谢Cheesebarons的问题,我找到了解决办法(原因)。
我在帮助器类中有一组方法,用于生成“默认”UIViews。
其中一种方法创建了我的默认UITableView:
public static UITableView CreateDefaultTableView(CGRect rect, UITableViewStyle style)
{
var tv = new UITableView(rect, style)
{
AutoresizingMask = UIViewAutoresizing.FlexibleHeight,
SeparatorStyle = UITableViewCellSeparatorStyle.SingleLine,
SeparatorColor = IosConstants.DefaultTableSeparatorColor,
BackgroundColor = IosConstants.DefaultViewBackgroundColor
};
return tv;
}
更改:
AutoresizingMask = UIViewAutoresizing.FlexibleHeight,
要:
AutoresizingMask = UIViewAutoresizing.All,
小学生错误!