UISplitViewController主内容宽度

时间:2016-01-05 12:59:47

标签: ios uitableview xamarin mvvmcross uisplitviewcontroller

我的应用程序中有UISplitViewController(MvvmCross / Xamarin iOS),由于某些原因,我无法让内容尊重可用视图区域的尺寸。

在屏幕截图中显示的情况下,主视图正在托管UIViewController,其中包含TableView。所有布局都是通过约束来完成的,并且在iPhone模拟器中运行时可以自行运行。

当我切换到在iPad上运行时,我在演示者中的一些自定义代码在UISplitViewController的主面板中显示了相同的视图,但在这种情况下,约束似乎被忽略了,我最终看起来像这样:

enter image description here

正如您所见,表格单元格的右侧现在远离UISplitViewController主面板的可视区域。

UITableViewUITableCell都使用View.Frame作为初始尺寸(我也试过View.Bounds)。

如何让单元格和/或表格尊重UISplitViewController可用空间的边界?

1 个答案:

答案 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,

小学生错误!