我有UITableView
三个动态行。UITableViewController
第一次显示时,一切正常。旋转后,尽管我将其设置setLayoutMargins
为零,但其中包含数据的行仍会缩进。到目前为止,我无法在另一个项目中重现此问题。它仅出现在iOS 8中,但仅出现在一张桌子上。该表的相同来源正在测试项目中正常工作。唯一的区别是它位于带有其他视图的容器中。
我检查了自动布局约束,旋转方法,注释掉的内容-所有这些都没有成功。压痕的变化在willRotateToInterfaceOrientation
和之间didRotateToInterfaceOrientation
或之后发生viewWillTransitionToSize
。我什至更新到iOS 8.1,结果相同。
有人经历过类似的行为吗?
PS:我还注意到,在iOS 8上将布局边距设置为零时,动画不像默认值(带有缩进)那样平滑。在iOS 7上,动画始终很流畅。
编辑:
我追踪了一些东西。如果将aUITableViewController
嵌入到UINavigationController
凹槽中,则缩进会在旋转时发生。如果进一步旋转,则返回到设置的缩进(在我的情况下为无缩进)。
如果将UITableViewController
嵌入到容器中(并且此容器在导航控制器中),则在旋转之后,单元格将获得其默认缩进。如果进一步旋转,此行为将保持不变(始终缩进)。
某些事件是否不会发送到子视图控制器,或者您没有人使用UITableViewController
嵌入到的事件UINavigationController
?
我认为这是iOS 8错误或Xamarin错误。也许其他人可以验证其安装是否相同。我正在将Xamarin Studio 5.5.2与Xcode 6.1一起使用。
一个丑陋的解决方案是这样的:
public override void DidRotate (UIInterfaceOrientation fromInterfaceOrientation)
{
base.DidRotate (fromInterfaceOrientation);
// otherwise cells are indented! iOS 8 Bug?
TableView.ReloadData ();
}
可以使用reloadData
或reloadSection
in didRotateFromInterfaceOrientation
,尽管它已被弃用。但是没有viewDidTransitionToSize
,我也必须支持iOS 7。
编辑:
我想出的另一种解决方案是绘制一条自定义分隔线。这仅适用于iOS 8,并且可以回答问题(尽管我在iOS 7上遇到了另一个问题,这种方法无济于事)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句