首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的UIContainerView自转行为

奇怪的UIContainerView自转行为
EN

Stack Overflow用户
提问于 2013-09-12 01:47:40
回答 1查看 206关注 0票数 2

我有一个视图控制器,它由两个子UIContainerView组成,一个是固定宽度,另一个是基于纵向和景观模式的动态调整宽度。两者都包含UITableViews。

由于某些原因,如果屏幕加载的纵向方向,它呈现良好。但是,如果它加载在景观中,然后旋转到纵向,则第二个(动态)表会得到所有的旋转,并认为它比实际/应该的更宽,允许您水平滚动它,而它不应该这样做。

tableView的细胞大小都适当,并粘在这个“太宽”的tableView的左边。但是,如果我把桌面视图的背景染成粉红色,我可以看到整个东西都延伸到了这个太宽的区域。

我很困惑这是怎么回事。不管视图控制器是以哪个方向加载的,autolayout不应该是相同的吗?

如果我在viewDidRotate...处理程序中记录宽度,那么所有东西似乎都有正确的宽度,但是它仍然以这种奇怪的方式呈现。

也许我可以强迫容器视图重新放置它自己吗?

更新:是tableView的contentSize被搞砸了。所有其他宽度在日志记录时都是正确的,但是contentSize.width是远远不够的。好消息是,我可以手动将它设置回它应该是什么,一切都很好!然而,它并没有回答为什么会发生这种情况,或者我做错了什么(如果有的话)。

这是一张截图:

EN

回答 1

Stack Overflow用户

发布于 2013-09-17 11:28:13

为了强制UITableView计算其内容大小,可以使用layoutIfNeeded方法。它遍历视图层次结构并立即布局子视图,从而正确设置内容大小。

不要手动设置大小,而是为表视图调用此方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18754045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档