问题描述
我正在尝试做的事情可以尝试通过下面的视频链接来解释。在下面的 gif 中,框中心没有改变,但是主锚会扩展。框只会从主角那里变大,它只会从主锚扩展。绿色代表扩张。下面的代码缩小了盒子。盒子不应该变小。
import UIKit
class ViewController: UIViewController {
var oldCons = [NSLayoutConstraint]()
var viewDrag = UIImageView()
var panGesture = UIPanGestureRecognizer()
var slider = UISlider()
var leftc: NSLayoutConstraint?
var tim: CGFloat = 50.0
var slidermultiplier: CGFloat = 0.6
var counter = 0
override func viewDidLoad() {
super.viewDidLoad()
leftc = viewDrag.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: slidermultiplier)
[viewDrag,slider].forEach{
$0.translatesAutoresizingMaskIntoConstraints = false
view.addSubview($0)
}
slider.addTarget(self,action: #selector(increase),for: .valueChanged)
viewDrag.backgroundColor = .orange
viewDrag.isUserInteractionEnabled = true
viewDrag.addGestureRecognizer(panGesture)
oldCons = [
viewDrag.centerYAnchor.constraint(equalTo: view.centerYAnchor),viewDrag.leadingAnchor.constraint(equalTo: self.view.leadingAnchor,constant: tim),viewDrag.heightAnchor.constraint(equalTo: view.heightAnchor,multiplier: 0.3),//width
leftc!,]
NSLayoutConstraint.activate(oldCons)
slider.addTarget(self,action: #selector(sliderr),for: .valueChanged)
NSLayoutConstraint.activate([
slider.topAnchor.constraint(equalTo: view.topAnchor),slider.leadingAnchor.constraint(equalTo: view.leadingAnchor),slider.heightAnchor.constraint(equalTo: view.heightAnchor,multiplier: 0.1),slider.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: 1 ),])
slider.frame = CGRect(x: 200,y: 200,width: 100,height: 100)
}
@objc func increase() {
slidermultiplier = CGFloat(slider.value)
leftc?.isActive = false
leftc = viewDrag.widthAnchor.constraint(equalTo: view.widthAnchor,multiplier: slidermultiplier)
leftc?.isActive = true
}
@objc func b22() {
counter = 1
}
@objc func sliderr() {
NSLayoutConstraint.deactivate(oldCons)
oldCons = [
viewDrag.centerYAnchor.constraint(equalTo: view.centerYAnchor),viewDrag.trailingAnchor.constraint(equalTo: self.view.trailingAnchor,constant: -tim),leftc!,]
NSLayoutConstraint.activate(oldCons)
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)