【问题标题】:A programmatically UISlider not changing width以编程方式不改变宽度的 UISlider
【发布时间】:2019-12-14 00:55:45
【问题描述】:

我的 swift 代码是所有代码,没有故事板。当值改变时,我的滑块 sx 应该改变 imagview 的宽度。这没有发生,在 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】:

    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)
    }
    

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多