首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift中旋转装置时iOS8平板显示单元高度的变化

在Swift中旋转装置时iOS8平板显示单元高度的变化
EN

Stack Overflow用户
提问于 2014-10-31 14:14:21
回答 2查看 4.2K关注 0票数 4

我正在尝试使用新的汽车尺寸作为我的桌面视图。我在做这个:

代码语言:javascript
复制
    tableView.rowHeight = UITableViewAutomaticDimension

我在我的UITableViewCell中有一个多行的-uilabel,带有一些约束,这些约束非常出色;当我在风景和肖像中输入桌面视图时,行的高度是动态的!太棒了!

..。但是当我旋转设备时,行得到基本的高度(即44)。

我添加了这一行:

代码语言:javascript
复制
override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) 
{
    self.tableView.reloadData()
}

问题就消失了。但这真的有必要吗?一定有更好的方法来解决这个问题吗?

编辑:

我刚刚发现,在删除表视图中的一行时,也会出现同样的问题,如下所示:

代码语言:javascript
复制
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)

我是不是漏掉了什么?为什么不开箱而动呢?

再次编辑:

我现在是这样做的:

代码语言:javascript
复制
self.tableView.estimatedRowHeight = 44
tableView.rowHeight = UITableViewAutomaticDimension

然后,当从API获取数据时:

代码语言:javascript
复制
self.tableView.reloadData()
self.tableView.beginUpdates()
self.tableView.endUpdates()

这似乎涵盖了所有的情况,我已经测试到,但它似乎真的很麻烦!如果没有开始/结束更新,单元在第一次加载时就会显示出一些非常奇怪的高度。(但当旋转设备时,电池会正确地调整高度。)

这一切看起来都太没劲了。我还没有找到一本正确涵盖这些案例的指南。

EN

回答 2

Stack Overflow用户

发布于 2014-11-26 12:33:25

我有一个类似的问题,旋转,其中整个搜索栏和tableView被移动-在非常旋转从肖像到景观和背部。参见->在旋转期间,在searchBar之后,Swift searchBar与tableView顶部分离:

旋转过程中快速searchBar与tableView顶部的searchController.active分离

我粘贴了您的覆盖功能,即:

代码语言:javascript
复制
override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation:      UIInterfaceOrientation, duration: NSTimeInterval) 
{
   self.tableView.reloadData()
}

在viewDidLoad函数和我的问题消失之后。不知道为什么。格伦·蒂斯曼

票数 4
EN

Stack Overflow用户

发布于 2014-11-07 17:31:44

根据今年以来的WWDC会话,如果单元已经使用了Autolayout,那么它应该会自动调整大小。它会尝试调用systemLayoutSizeFittingSize:(CGSize),或者如果您没有使用autolayout,它将尝试调用sizeThatFits:(CGSize)

如果您也支持iOS7,需要确定的是设置tableView.rowHeighttableView.estimatedRowHeight会导致奇怪的行为,您可能希望有条件地调用其中一个,但不是两者都调用,这取决于应用程序运行的是哪个版本的iOS。

如果您对标签有问题,您还可以检查是否正在为UILabel使用新的“自动首选最大布局宽度”属性(如果您在故事板中,这是在“属性”检查器下),并且lines设置为'0‘。有关更多细节,请参见文献资料。还请参阅iOS接口目录中的“标签行为”,以获得一些关于混合UILabel某些行为和获得奇怪结果的警告。

最后,您可能会看到新添加的尺寸类的旋转方法中发生了什么

-willTransitionToSize:withTransitionCoordinator: -willTransitionToTraitCollection:withTransitionCoordinator:

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

https://stackoverflow.com/questions/26676755

复制
相关文章

相似问题

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