iOS:尺寸等级不会因不同尺寸而改变
Posted
技术标签:
【中文标题】iOS:尺寸等级不会因不同尺寸而改变【英文标题】:iOS: Size classes not changing for different sizes 【发布时间】:2016-01-26 03:08:43 【问题描述】:我正在尝试使用 xcode 中的情节提要为我的应用构建 UI。
我最近更改了外观,希望 iPad 与 iPhone 的外观略有不同。例如,我希望单元格高度在 ipad 上为一个高度,在 iphone 上为另一个高度,每个不同的大小都会对单元格内标签的位置等产生不利影响。
烦人的事情是我在 xib 上完成了这一切,但是使用故事板,我将按照我想要的方式在 iPhone 的紧凑宽度常规高度中构建所有内容,然后以常规宽度常规高度构建 ipad 的 UI .然后回去检查一下iphone,它完全采用了我在常规常规尺寸课程中所做的。
这真令人气愤,拥有尺码等级实际上毫无意义,我也可以使用任何尺码等级,但我不想。下面包含的图片为您提供了良好的视觉表现。
所以我在这里为 iphone 制作了 UI
然后这是我进行更改之前和之后的 ipad
然后返回常规常规(iphone),您可以看到单元格的大小已更改
如果我要把它改回原来的样子,然后转到 ipad,我会看到上面包含的第一个 ipad 图像。太烦人了,我怎样才能让它与不同大小的类一起工作?
【问题讨论】:
【参考方案1】:你不能使用sizeclasses来改变tableviewcell的高度。tableviewcell的所有属性都不能被sizeclasses修改。
当您选择标签或任何其他可以通过尺寸等级修改的东西时,您会在属性检查器底部看到一个“已安装”复选框。您可以安装或卸载不同尺寸等级的标签。
但是当你选择一个 tableviewcell 或一个 tableviewcell 的子视图时,你不会看到这个复选框。一个 tableviewcell 出现在一个尺寸类中但在另一个尺寸类中消失是没有意义的。
您必须使用 tableView 的委托方法来更改 tableView 的高度。
【讨论】:
啊,好吧,我从来不知道这一点,还有什么不受尺寸等级影响的,比如表格视图?谢谢你的回答我会标记你 @DomBryan Apple 没有指出哪个类不受大小类的影响。相反,Apple 记录了 UIViews 、约束、字体可以通过大小类进行更改。您可以在以下位置查看更多信息:Size Classes Design Help developer.apple.com/library/prerelease/tvos/recipes/… 不能使用大小类来改变 UITableViewCell 的高度是不完全正确的。如果您使用自动布局和rowHeight = UITableViewAutomaticDimension
并且有一个视图粘在单元格内的单元格边距上,那么行的高度将根据单元格内的视图进行调整。您可以使用尺寸类来调整视图。因此,行高基于尺寸等级。希望这会有所帮助。以上是关于iOS:尺寸等级不会因不同尺寸而改变的主要内容,如果未能解决你的问题,请参考以下文章