当前设置:
我有一个多行 UIButton
,它被添加到其超级视图(普通的UIView
)。按钮的宽度是其超视图的90%。因此,当超视图的大小发生变化时,由于Autolayout
约束,标签的宽度会相应更改。
接下来,在viewDidLoad方法中我做了这个:
//Line break mode and Font size ( are set in Interface Builder
myButton.titleLabel?.adjustsFontSizeToFitWidth = true
myButton.titleLabel?.minimumScaleFactor = 15.0
myButton.titleLabel?.numberOfLines = 2
所以现在,当我有很长的文字时,在iPhone设备上我会得到这样的内容:
这正是我想要的。但当然,这在iPad设备上看起来有所不同。例如,这是在iPad Pro 9.7上:
正如可以看到的,一切看起来都很小而且很糟糕。
我尝试过:
我尝试设置最大字体大小(将在iPad设备上使用),并与minimumScaleFactore = 15
结合使用。因此我将字体大小设置为25,现在iPad和iPhone上的所有内容都更容易接受,但在iPhone设备上,由于minimumScaleFactor的工作原理,文本比我需要的要大一些。
解决这个问题的方法是什么?
我更喜欢这样的东西(在所有iPad和iPhone设备上看到类似的外观):
答案 0 :(得分:3)
答案 1 :(得分:1)
遗憾的是,您无法根据大小等级改变界面构建器中按钮的字体;但是您可以根据大小类删除整个控件。选择按钮选择属性检查器(Option + command + 4)。一直滚动到底部,您会看到一个安装的复选框,左侧有一个小加号按钮。如果单击加号,您现在可以添加大小类的变体来卸载此控件。具体来说,将其卸载为Regular Width Regular Height(非分割屏幕中的iPad)。现在使用您的iPad属性制作第二个按钮,并仅将其安装为常规宽度常规高度。你现在有两个不同的按钮:1)iPad没有分屏,一个用于其他所有按钮,不需要代码。您可以将它们设置为调用相同的IBAction。请参阅此link for more。