根据设备大小缩放多线UIButton上的字体
当前设置:
我有一个多线 UIButton
被添加到它的超级视图(一个普通的UIView
)。 button的宽度是其超视图的90%。 所以当它的Autolayout
视图尺寸发生变化时,由于Autolayout
约束,标签的宽度会相应地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设备上获得相似的外观):
您可以使用大小class级在IB中指定button/标签上的字体。 只需按下字体属性左侧的小号+号即可:
可悲的是你不能改变基于尺寸类的界面生成器中的button的字体; 但是,您可以根据大小类删除整个控件。 select您的buttonselect属性检查器(选项+命令+ 4)。 一直滚动到底部,您将看到一个checkbox,在左侧安装了一个小加号button。 如果单击加号,现在可以添加大小类的变体来卸载此控件。 特别是将其卸载为Regular Width Regular(非iPad分屏下的iPad)。 现在制作第二个带有iPad属性的button,并将其安装为常规宽度常规高度。 你现在有两个不同的button:1)iPad没有分屏,一个用于其他任何事情,不需要代码。 你可以设置它们来调用相同的IBAction。 看到这个链接更多 。
- 如何使用Interface Builder添加导航控制器?
- 如何用UINavigationController和Interface Builder创build一个UIViewController?
- 如何在Xcode6中为新创build的约束禁用“相对边距”选项
- 生产构build中的冲击会导致崩溃
- 使用UIImageRenderingModeAlwaysTemplate从界面生成器中淡入UIButton的图像
- Xcode 4.5 – 在我的设备上无线构build应用程序
- Xcode:避免Interface Builder是个好主意吗?
- 应用程序cachingiOS PhoneGap
- 如何正确地弃用Xcode 4中的方法