我尝试使用UISlider
更改UIImageView
中指定的图片尺寸。
滑块的值范围是0~100。
所以我的想法是,如果我将滑块移动得更小,指定的图像会显得更小,而如果我将滑块移动得更大,则图像尺寸会变大。
当图像变小时就是这种情况: getting smaller image by UISlider
当图像变大时就是这种情况: getting bigger image by UISlider
有人可以帮忙吗?
答案 0 :(得分:2)
您需要在图像视图中添加宽度和宽高比约束 - 显然还有其他所需的约束 - :
在我的示例中,这些是图像视图的约束:
接下来,您可以实现以下内容:
class ViewController: UIViewController {
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var imageViewWidth: NSLayoutConstraint!
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
slider.maximumValue = 100.0
slider.value = 0.0
imageViewWidth.constant = 20
}
@IBAction func sliderValueChanged(_ sender: Any) {
imageViewWidth.constant = CGFloat(20 + slider.value)
}
}
imageViewWidth
IBOutlet将是您要调整大小的图像视图的宽度约束。
<强>输出:强>
答案 1 :(得分:1)
使滑块的值范围从.01到1.0(.01应该优于0。)
按住Ctrl键并从滑块拖动到视图控制器中,并在滑块的valueChanged事件上创建一个动作。我们称之为sliderChanged
。
在滑块的动作方法中,更改图像视图上的比例:
@IBOutlet myImageView: UIImageView*
@IBAction func sliderChanged(sender: UISlider) {
let scale = sender.value
let transform = CGAffineTransform.scale(scaleX: scale, y: scale)
myImageView.transform = transform
}
应该这样做。
答案 2 :(得分:0)
根据滑块的值更新帧
尝试将UISlider的值乘以UIImageView的约束