使UIButton占屏幕大小的百分比

时间:2015-06-25 07:29:33

标签: swift uibutton constraints

我注意到iPhone 5模拟器上的某些按钮尺寸看起来很棒,但在iPhone 6模拟器上看起来不太好,这是因为我放在UIButton上的高度或限制最终会留下很多空白区域我的应用程序屏幕的底部。

我希望有一个40%的屏幕大小的按钮,无论我在哪个设备上模拟。

关于如何使按钮尺寸保持40%的任何想法,无论设备如何?

4 个答案:

答案 0 :(得分:9)

  1. Ctrl从按钮拖动到superview并选择Equal Widths
  2. 打开尺寸检查器编辑“等宽度”约束并将乘数设置为0.4。 你会看到这样的事情: enter image description here

  3. 添加缺失的约束和更新框架。

  4. enter image description here

答案 1 :(得分:1)

您无法将约束设置为屏幕高度的40%。但是,如果按钮始终具有20px前导和尾随超视图,则可以使用该宽度并设置宽高比高度。

另一种方法是使用UIScreen.mainScreen().bounds.size.height * 0.4作为按钮高度。

第三种方法是使用按钮的超视图来设置高度。假设您的按钮是UIViewController视图的直接子项:view.bounds.size.height * 0.4

可能还有许多其他方法可以做到这一点,但是就我所知,它们都不会涉及将高度设置为实际百分比。

答案 2 :(得分:0)

此功能为您提供屏幕界限

var bounds = UIScreen.mainScreen().bounds

然后你可以设置按钮宽度乘以0.4 x bounds.size.width

此致

答案 3 :(得分:0)

Swift 4.2

在代码中,这真的很简单:

`describe()`
{
beforeall() \\ Spec1.js
it()
it()
}
describe(){
beforeAll()\\spec2.js
it()
it()
}

或使用它代替当前的heightAnchor:

override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(button)
        button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
        button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true

        button.widthAnchor.constraint(equalToConstant: 100).isActive = true
        button.heightAnchor.constraint(equalToConstant: UIScreen.main.bounds.height * 0.4).isActive = true
    }

希望此帮助 :)

button.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.4).isActive = true