gpt4 book ai didi

ios - 如何调整按钮的大小? swift

转载 作者:行者123 更新时间:2023-12-01 22:07:13 25 4
gpt4 key购买 nike

手机屏幕处于纵向或横向模式时,如何更改按钮的宽度和长度?

我希望这是屏幕为纵向时的按钮大小:

        View_Mor.heightAnchor.constraint(equalToConstant: 140).isActive = true
View_Mor.widthAnchor.constraint(equalToConstant: 140).isActive = true

当屏幕为横向时:
        View_Mor.heightAnchor.constraint(equalToConstant: 30).isActive = true
View_Mor.widthAnchor.constraint(equalToConstant: 30).isActive = true

这是我的代码:
class CHATViewController: UIViewController {
@IBOutlet weak var View_Mor: UIView!
override func viewDidLoad() {
super.viewDidLoad()
View_Mor.translatesAutoresizingMaskIntoConstraints = false
View_Mor.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
View_Mor.centerYAnchor.constraint(lessThanOrEqualTo: view.centerYAnchor).isActive = true
View_Mor.heightAnchor.constraint(equalToConstant: 140).isActive = true
View_Mor.widthAnchor.constraint(equalToConstant: 140).isActive = true
}


override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if UIDevice.current.orientation.isLandscape {
View_Mor.heightAnchor.constraint(equalToConstant: 30).isActive = true
View_Mor.widthAnchor.constraint(equalToConstant: 30).isActive = true
self.view.layoutIfNeeded()
} else {
print("Portrait")
View_Mor.heightAnchor.constraint(equalToConstant: 140).isActive = true
View_Mor.widthAnchor.constraint(equalToConstant: 140).isActive = true
self.view.layoutIfNeeded()
}
}
}

但这不起作用

最佳答案

使用大小类来更改按钮的宽度和长度。
重写traitCollectionDidChange方法,当iPhone朝不同方向更改时将调用此方法。使用traitCollection中的horizo​​ntalSizeClass和verticalSizeClass激活所需的约束。

import UIKit

class CHATViewController: UIViewController {
@IBOutlet weak var View_Mor: UIView!
lazy var heightArchonWhenPortrait = View_Mor.heightAnchor.constraint(equalToConstant: 140)
lazy var widthArchonWhenPortrait = View_Mor.widthAnchor.constraint(equalToConstant: 140)
lazy var heightArchonWhenlandscap = View_Mor.heightAnchor.constraint(equalToConstant: 30)
lazy var widthArchonWhenlandscap = View_Mor.widthAnchor.constraint(equalToConstant: 30)

override func viewDidLoad() {
super.viewDidLoad()
View_Mor.translatesAutoresizingMaskIntoConstraints = false
View_Mor.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
View_Mor.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
heightArchonWhenPortrait.isActive = false
widthArchonWhenPortrait.isActive = false
heightArchonWhenlandscap.isActive = true
widthArchonWhenlandscap.isActive = true
}


override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
redoLayout(trait: traitCollection)
}


func redoLayout(trait:UITraitCollection) {
if trait.horizontalSizeClass == .compact && trait.verticalSizeClass == .regular {
heightArchonWhenPortrait.isActive = false
widthArchonWhenPortrait.isActive = false
heightArchonWhenlandscap.isActive = true
widthArchonWhenlandscap.isActive = true
} else {
print("Portrait")
heightArchonWhenlandscap.isActive = false
widthArchonWhenlandscap.isActive = false
heightArchonWhenPortrait.isActive = true
widthArchonWhenPortrait.isActive = true
}
}
}

关于ios - 如何调整按钮的大小? swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59510591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com