以编程方式UISlider不会改变宽度

问题描述 投票:0回答:1

我的快速代码都是没有故事板的代码。值更改后,我的滑块sx应该更改imagview的宽度。这没有发生,在imageview上看不到任何变化。更改滑块值时,imageview应该增加/减少。

    import UIKit

class ViewController: UIViewController {

var sx = UISlider()
var pic = UIImageView()
var ww = 80

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    [sx,pic].forEach{
        $0.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview($0)
        $0.backgroundColor = UIColor.systemPink
    }
    pic.frame = CGRect(x: view.center.x-115, y: view.center.y-200, width: CGFloat(ww), height: 50)
    sx.frame = CGRect(x: view.center.x-115, y: view.center.y + 200, width: 80, height: 50)

    sx.addTarget(self, action: #selector(ji), for: .valueChanged)
}


@objc func ji(sender : UISlider){
    ww = Int(sx.value)
}

}
swift int slider sender addtarget
1个回答
0
投票

ji内部的复位帧作为viewDidLoad内部的代码将不会再次触发,只有在加载vc时才调用一次]

@objc func ji(sender : UISlider){
   ww = Int(sx.value)! * 80  
   pic.frame = CGRect(x: view.center.x-115, y: view.center.y-200, width: CGFloat(ww), height: 50)
}
© www.soinside.com 2019 - 2024. All rights reserved.