如何正确地自动缩放UIButton和标题文本?

时间:2018-09-28 21:59:53

标签: ios swift text uibutton scaling

我正在尝试制作带有标题的按钮,这些标题会根据iOS设备(自动缩放)更改标题文本的宽度,高度和字体大小。我正在使用Xcode 10编码Swift。

这是一个简单的示例:我在IB红色按钮中创建了一个红色的按钮,该按钮覆盖了整个屏幕(顶部,底部,前导和尾随约束设置为0),标题为“按钮”,中间的字体大小设置为350标题将完全适合12.9英寸iPad的宽度(请参见图片)。

IB

我输入了这样的FitToWidth代码:

class ViewController: UIViewController {

@IBOutlet weak var button: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    button.titleLabel?.adjustsFontSizeToFitWidth = true
    button.titleLabel?.minimumScaleFactor = 0.1
}

当我在屏幕分辨率低于iPad 12.9的设备上运行代码时,我看到按钮标题已缩放并适合屏幕宽度,但它向下移动(请参见图片)。

iPad 12.9模拟

iPad 12.9 simulation

iPhone SE模拟

iPhone SE simulation

我想念什么?

就像在IB中一样,我需要标题文本位于按钮的中心。我尝试了对按钮应用各种约束,但没有解决。

2 个答案:

答案 0 :(得分:0)

调整按钮视图的大小以使标题适合每个屏幕尺寸

在viewDidAppear()中尝试

button.sizeToFit() 

答案 1 :(得分:0)

看起来我找到了解决方法。

我刚刚在viewDidLoad中的代码中添加了这样的字符串:  chmod 777 script_name

现在,标题在任何iOS设备的按钮中间:

iPhone SE simulation iPad Air 2 simulation

相关问题