代码之家  ›  专栏  ›  技术社区  ›  Roman M.

如何使用Swift中的UISlider以编程方式更改UIImageView中指定的图像大小

  •  0
  • Roman M.  · 技术社区  · 7 年前

    我在试着使用 UISlider 在中更改指定的图像大小 UIImageView 滑块的值范围为0~100。 所以这个想法是,如果我移动滑块越小,指定的图像显示越小,如果我移动滑块越大,图像大小越大。

    当图像变小时会出现这种情况: getting smaller image by UISlider

    getting bigger image by UISlider

    有人能帮忙吗?

    3 回复  |  直到 7 年前
        1
  •  2
  •   Ahmad F    7 年前

    您需要添加 纵横比 图像视图的约束-以及其他需要的约束-:

    enter image description here

    enter image description here

    接下来,您可以执行以下操作:

    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将是要调整大小的图像视图的宽度约束。

    enter image description here

        2
  •  1
  •   Duncan C    7 年前

    使滑块的值范围为。01到1.0(0.01应该比0更好。)

    sliderChanged .

    在滑块的动作方法中,更改图像视图上的比例:

    @IBOutlet myImageView: UIImageView*
    
    
    @IBAction func sliderChanged(sender: UISlider) {
      let scale = sender.value
      let transform = CGAffineTransform.scale(scaleX: scale, y: scale)
      myImageView.transform = transform
    }
    

        3
  •  0
  •   UIResponder    7 年前
    1. 基于滑块值更新帧

    2. 尝试将UISlider的值与UIImageView的约束相乘