Цель кода моего swift - использовать ползунок, чтобы увеличить, уменьшить размер изображения. Imageview pi c должен иметь возможность увеличивать уменьшенный размер в зависимости от значения слайдера. Когда вызывается веселье c, необходимо отключить исходные ограничения, чтобы можно было изменять ширину и высоту. Я слышал, что можно использовать анимационные блоки.
import UIKit
class ViewController: UIViewController {
var pic = UIImageView()
var slide = UISlider()
var currentView: UIView?
var oldCons = [NSLayoutConstraint]()
override func viewDidLoad() {
super.viewDidLoad()
slide.backgroundColor = .systemPink
pic.backgroundColor = .systemGreen
[pic,slide].forEach {
$0.translatesAutoresizingMaskIntoConstraints = false
view.addSubview($0)
}
NSLayoutConstraint.activate([
slide.heightAnchor.constraint(equalTo: view.heightAnchor ,multiplier: 0.25),
slide.widthAnchor.constraint(equalTo: view.widthAnchor ,multiplier: 0.25),
slide.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant :0),
slide.topAnchor.constraint(equalTo: pic.bottomAnchor, constant :0),
])
oldCons = [
pic.topAnchor.constraint(equalTo: view.topAnchor, constant :0),
pic.heightAnchor.constraint(equalTo: view.heightAnchor ,multiplier: 0.25),
pic.widthAnchor.constraint(equalTo: view.widthAnchor ,multiplier: 0.25),
pic.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant :0),
]
NSLayoutConstraint.activate(oldCons)
slide.addTarget(self, action: #selector(change), for: .allTouchEvents)
}
@objc func change(){
NSLayoutConstraint.deactivate(oldCons)
pic.bounds.size.width = CGFloat(slide.value)
pic.bounds.size.height = CGFloat(slide.value)
}
}