我有一个适用于iPad和iPhone的应用程序。
我有一个tableview,每行都有一个文本。我想改变文本大小取决于设备。
例如:
我在应用程序中有很多标签,所以我不想检查设备并在代码中设置大小。在Interface Builder中有一种方法吗?
我该如何解决?
答案 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];