约束旋转垂直uislider

问题描述 投票:0回答:1

这就是我希望我的 ui 滑块受到限制的方式。

enter image description here

但是滑块不是垂直的。为了使其垂直,我必须使用 sliderX.transform = CGAffineTransform(rotationAngle: CGFloat(-Double.pi / 2)) 但这会弄乱约束。有什么方法可以将滑块与同一位置进行对比,但切换滑块的方向。下面是当前代码的样子。

enter image description here

swift autolayout slider constraints nslayoutconstraint
1个回答
0
投票

您可以在旋转之前考虑视图的框架。想象一下一个水平滑块,你应该把它放在屏幕上的什么位置,它应该有多长,这样当它旋转 90 度时,它看起来就是你想要的样子?

例如,您可以添加以下约束:

    滑块的中心 X 等于安全区域的尾随锚点(也许减去一些填充)
  • 滑块中心Y等于安全区域中心Y
  • 滑块的宽度等于安全区域的高度(因为当它旋转时,宽度会变成高度)
let slider = UISlider(frame: .zero) slider.minimumValue = 0 slider.maximumValue = 1 slider.value = 0.5 slider.translatesAutoresizingMaskIntoConstraints = false view.addSubview(slider) slider.transform = .init(rotationAngle: .pi / 2) NSLayoutConstraint.activate([ slider.centerXAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -30), slider.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor), slider.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.heightAnchor) ])

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.