如何以编程方式在 Swift 中使用 UISlider 更改 UIImageView 中指定的图像大小
How to change specified image size in UIImageView with UISlider in Swift programmatically
我正在尝试使用 UISlider
更改 UIImageView
中指定的图像大小。
滑块的取值范围为 0 ~ 100。
所以我的想法是,如果我将滑块移动得更小,指定的图像就会显示得更小,如果我将滑块移动得更大,图像尺寸就会变大。
图片变小时是这样的:
getting smaller image by UISlider
图片变大时是这样的:
getting bigger image by UISlider
有人可以帮忙吗?
根据滑块的值更新帧
尝试将 UISlider 的值与 UIImageView 的约束相乘
使滑块的值范围从 .01 到 1.0(.01 应该比 0 更好。)
按住 Control 从您的滑块拖动到您的视图控制器中,并在滑块的 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
}
应该可以了。
您需要为图像视图添加 宽度 和 纵横比 约束 - 显然还有其他所需的约束 -:
在我的示例中,这些是图像视图的约束:
接下来,您可以执行以下操作:
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 将是您要调整大小的图像视图的宽度约束。
输出:
我正在尝试使用 UISlider
更改 UIImageView
中指定的图像大小。
滑块的取值范围为 0 ~ 100。
所以我的想法是,如果我将滑块移动得更小,指定的图像就会显示得更小,如果我将滑块移动得更大,图像尺寸就会变大。
图片变小时是这样的: getting smaller image by UISlider
图片变大时是这样的: getting bigger image by UISlider
有人可以帮忙吗?
根据滑块的值更新帧
尝试将 UISlider 的值与 UIImageView 的约束相乘
使滑块的值范围从 .01 到 1.0(.01 应该比 0 更好。)
按住 Control 从您的滑块拖动到您的视图控制器中,并在滑块的 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
}
应该可以了。
您需要为图像视图添加 宽度 和 纵横比 约束 - 显然还有其他所需的约束 -:
在我的示例中,这些是图像视图的约束:
接下来,您可以执行以下操作:
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 将是您要调整大小的图像视图的宽度约束。
输出: