iPad和iPhone中不同的文本标签大小[重复]
Posted
技术标签:
【中文标题】iPad和iPhone中不同的文本标签大小[重复]【英文标题】:Different text label size in iPad and iPhone [duplicate] 【发布时间】:2016-05-11 14:24:42 【问题描述】:我有一个适用于 iPad 和 iPhone 的 swift 应用程序。
我有一个表格视图,每一行都有一个文本。我想根据设备更改文本的大小。
例如:
iPhone 5s 尺寸 = 14 iPhone 6s 尺寸 = 18 iPad = 24我在应用中有很多标签,所以我不想检查设备并在代码中设置大小。在Interface Builder中有办法吗?
我该如何解决?
【问题讨论】:
【参考方案1】:执行此操作的简单方法是使用self.view.frame.height
检查设备的屏幕尺寸。这将返回一个CGFloat
,我们可以在条件中使用它,在其中我们可以更改UILabel
的字体名称和大小。
// Check Device Size //
let screenSize = self.view.frame.height
if screenSize <= 740.0
// iPhones //
label.font = UIFont(name: "Helvetica", size: 14.0)
else
// iPads //
label.font = UIFont(name: "Helvetica", size: 24.0)
另一种稍微好一点的方法来完成同样的事情是在Storyboard
中为不同的大小类设置特定的布局。要在横向或纵向布局中为所有 iPhone 设置应用程序,您需要将大小类更改为 Compact Width
。对于所有横向或纵向的 iPad,您可以使用 Regular Width | Regular Height
。
编辑:更新了代码示例以简单地区分 iPad 和 iPhone 的屏幕尺寸。
【讨论】:
我只想在 iPhone 和 iPad 之间分开【参考方案2】:我找到了一个很好的解决方案:
复制故事板,将一个用于 iPhone,另一个用于 iPad。 在不同的故事板中,我只需要设置文本的大小。
它解决了我的问题。
【讨论】:
虽然这最终可能会奏效,但它会给您的项目增加额外的重量和混乱。看看 Size Classes 的使用以及每个 Size Class 安装和卸载某些视图。【参考方案3】:在情节提要中选择您的文本字段/标签。在属性检查器中,您会在字体选择器的左侧看到一个小的“+”。这将允许您为您的文本选择特定大小级别的内容。
当 Apple 推出 Universal Storyboards 时,ios 8 中添加了 Size 类,让您可以使用相同的 Storyboard 文件为 iPad 和 iPhone 进行设计。在 Storyboard 设计窗口的底部,您将看到(默认)“w Any h Any”按钮。这使您可以访问紧凑和常规尺寸类别的组合。这些可用的组合让您可以实现设计,例如仅适用于横向的 iPhone,或者可能是两个方向的 iPad。您拥有完全的控制权。
对于您的字体相关问题,您可以通过我上面提到的“+”号访问 size-class 控件。
【讨论】:
我试过了,但文字总是一样的(14 px)我试过所有的组合。 iPad 和 iPhone 的组合是什么?? 这并不能区分 iPhone 5s 和 iPhone 6s。 它在 iPad 和 iPhone 之间分离? 是的。这正是尺寸等级的用途。以上是关于iPad和iPhone中不同的文本标签大小[重复]的主要内容,如果未能解决你的问题,请参考以下文章