如何使用UISlider在Swift中以编程方式更改UIImageView中的指定图像大小
我试图使用UISlider
更改UIImageView
中的指定图像大小。 滑块的取值范围为0〜100. 所以我的想法是,如果我将滑块移动得更小,指定的图片显示的更小,而且如果我将滑块移动得更大,则图片的尺寸会变大。如何使用UISlider在Swift中以编程方式更改UIImageView中的指定图像大小
这是当图像变得越来越小的情况下: getting smaller image by UISlider
这就是当图像越来越大的情况下: getting bigger image by UISlider
是否有人可以帮忙吗?基于滑块的值
使滑块的值范围从.01 1.0(.01应该更好地工作比0 )
控制 - 从滑块拖动到您的视图控制器,并在滑块的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
}
应该这样做。
哇!大。有用!谢谢,邓肯! –
更新帧
尝试UISlider的值用的UIImageView的约束乘以
您将需要添加宽度和宽高比约束图像视图 - 和明显的其他所需的必要constraints-:
在我的例子,这些都是制约图像视图:
接下来,你可以implemnt的以下:
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中会要调整图片大小,视图的宽度约束。
输出:
感谢您的回答。这是我想要的。你可以实现编程吗? –
很高兴帮助! “你可以实现编程吗?“我没有得到:)你仍然有任何问题吗? –
这不是通过编程实现的,但它的工作原理,感谢你的努力,艾哈迈德。 –
OK,你可以考虑在其滚动型和ImageView的做到这一点,并使用滚动视图的委托方法你为什么不使用滚动视图,而不是图像来实现这一功能 –
? –
你的意思是使用滚动视图,而不是imageview? 我会试试看。 –