UITableViewCell的缩进仅在iOS 8上旋转后更改

UITableViewCell的缩进仅在iOS 8上旋转后更改,ios,uitableview,ios8,orientation,Ios,Uitableview,Ios8,Orientation,我有一个带有三个动态行的UITableView。当第一次显示UITableViewController时,一切正常。旋转后,尽管我将setLayoutMargins设置为零,但其中包含数据的行将得到缩进。直到现在,我还不能在另一个项目中重现这个问题。它只出现在iOS 8中,但只出现在一个表中。表的同一个源在测试项目中工作,没有问题。这里唯一的区别是它与其他一些视图位于一个容器中 我检查了自动布局约束、旋转方法和注释,但都没有成功。缩进的变化发生在willRotateToInterfaceOrie

我有一个带有三个动态行的
UITableView
。当第一次显示UITableViewController时,一切正常。旋转后,尽管我将
setLayoutMargins
设置为零,但其中包含数据的行将得到缩进。直到现在,我还不能在另一个项目中重现这个问题。它只出现在iOS 8中,但只出现在一个表中。表的同一个源在测试项目中工作,没有问题。这里唯一的区别是它与其他一些视图位于一个容器中

我检查了自动布局约束、旋转方法和注释,但都没有成功。缩进的变化发生在
willRotateToInterfaceOrientation
didRotateToInterfaceOrientation
之间或
视图WillTransitionOnSize
之后。我甚至更新到iOS 8.1,结果也一样

有人经历过类似的行为吗

附言: 我还注意到,当在iOS 8上将版面边距设置为零时,动画不像默认值(缩进)那样平滑。在iOS 7上,动画总是平滑的

编辑:

我找到了一些东西。如果
UITableViewController
嵌入到
UINavigationController
中,则缩进会在旋转时发生。如果进一步旋转,它会返回到设置的缩进(在我的例子中没有缩进)

如果
UITableViewController
嵌入到一个容器中(该容器位于导航控制器中),则在旋转之后,单元格将返回其默认缩进。如果进一步旋转,此行为将保持不变(始终缩进)


是否有一些事件没有发送到子视图控制器,或者你们都没有使用嵌入到
UINavigationController
中的
UITableViewController

在我看来,这是一个iOS 8错误或Xamarin错误。也许另一个人可以验证他的安装是否相同。我正在使用XamarinStudio5.5.2和Xcode 6.1

一个丑陋的解决方案是:

public override void DidRotate (UIInterfaceOrientation fromInterfaceOrientation)
{
    base.DidRotate (fromInterfaceOrientation);

    // otherwise cells are indented! iOS 8 Bug?
    TableView.ReloadData ();
}
可以在
didRotateFromInterfaceOrientation
中使用
reloadData
reloadSection
,尽管这是一个不推荐使用的函数。但是没有
viewditransitionsize
,我还必须支持iOS 7

编辑:

我提出的另一个解决方案是绘制自定义分隔线。这只适用于iOS 8,可以回答这个问题(尽管我在iOS 7上还有另一个问题,这种方法没有帮助)