iPad和iPhone中不同的文字标签尺寸

时间:2016-05-11 14:24:42

标签: ios iphone swift ipad uilabel

我有一个适用于iPad和iPhone的应用程序。

我有一个tableview,每行都有一个文本。我想改变文本大小取决于设备。

例如:

  • iPhone 5s尺寸= 14
  • iPhone 6s尺寸= 18
  • iPad = 24

我在应用程序中有很多标签,所以我不想检查设备并在代码中设置大小。在Interface Builder中有一种方法吗?

我该如何解决?

4 个答案:

答案 0 :(得分:3)

执行此操作的一种简单方法是使用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屏幕尺寸。

答案 1 :(得分:1)

我找到了一个很好的解决方案:

复制故事板并将一个用于iPhone,另一个用于iPad。 在不同的故事板中,我只需要设置文本的大小。

它解决了我的问题。

答案 2 :(得分:0)

在故事板中选择文本字段/标签。在属性检查器中,您将看到字体选择器左侧的一个小“+”。这将允许您为文本选择特定尺寸的东西。

当Apple推出通用故事板时,尺寸等级被添加到iOS 8中,让您可以使用相同的Storyboard文件设计iPad和iPhone。在Storyboard设计窗口的底部,您将看到(默认)'w Any h Any'按钮。这使您可以访问紧凑和常规大小类的组合。这些可用的组合让您可以实现设计,例如仅适用于横向iPhone,或者两种方向的iPad。你完全可以控制。

对于与字体相关的问题,您可以通过我上面提到的“+”符号访问尺寸级别控件。

答案 3 :(得分:-1)

您可以按屏幕尺寸定义字体大小。

看看这篇文章,按点定义字体 http://www.kylejlarson.com/blog/iphone-6-screen-size-web-design-tips/

然后给出正确的字体大小。

[label.font fontWithSize:sizeYouWant];