gpt4 book ai didi

ios - 如何在 Swift 中以编程方式从 UIView 中删除安全区域?

转载 作者:行者123 更新时间:2023-12-02 19:28:55 27 4
gpt4 key购买 nike

这是一个自定义 View ,这个 View 创建一个带有给定框架和背景颜色的正方形。我正在向 subview 添加自定义 View ,该 View 正确显示。但是我无法覆盖底部安全区域,任何人都可以帮助我以编程方式从底部移除安全区域。

class CustomView: UIView {

override var frame: CGRect {

didSet {
setNeedsDisplay()
}
}

override init(frame: CGRect) {
super.init(frame: frame)
self.isOpaque = false
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.isOpaque = false
}

override func draw(_ rect: CGRect) {

UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.7).setFill()
UIRectFill(rect)

let square = UIBezierPath(rect: CGRect(x: 200, y: rect.size.height/2 - 150/2, width: UIScreen.main.bounds.size.width - 8, height: 150))
let dashPattern : [CGFloat] = [10, 4]
square.setLineDash(dashPattern, count: 2, phase: 0)
UIColor.white.setStroke()
square.lineWidth = 5
square.stroke()

}

}

最佳答案

考虑以下示例:

class ViewController: UIViewController {

private let myView = UIView()

override func viewDidLoad() {
super.viewDidLoad()
configureCustomView()
}

private func configureCustomView() {
myView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(myView)
myView.backgroundColor = .systemPurple

NSLayoutConstraint.activate([
myView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
myView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
myView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
myView.heightAnchor.constraint(equalToConstant: 200)
])
}
}

结果:
enter image description here

如果你不想越过安全区域,那么你可以在 NSLayoutConstraint.activate([ ...])。所以你实际上不必删除 SafeArea,因为如果你愿意,你可以简单地忽略它们......

关于ios - 如何在 Swift 中以编程方式从 UIView 中删除安全区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62100064/

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