swift - 以编程方式 UISlider 不改变宽度

标签 swift int slider sender addtarget

我的 swift 代码都是代码,没有 Storyboard。当值更改时,我的 slider sx 应该更改 imagview 的宽度。这并没有发生, ImageView 上看不到任何变化。当 slider 值改变时, 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)
}

}

最佳答案

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

关于swift - 以编程方式 UISlider 不改变宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59331453/

相关文章:

Swift 删除按钮 BottomBorder

swift - 绘制带边框的多段线 Mapbox, iOS

c - 十六进制数对于 long long int 来说太大了吗?

javascript - 图像在多图像 slider 中显示两次

javascript - 如何减慢 Flowslider slider 的速度?

javascript - 如何让这个 JQuery slider 正确渲染幻灯片?

xcode - 来自 iAd 的插页式广告无法在 swift 上运行

swift - OSX - 使用 Swift 加载图像并将其保存为较小的 png 文件

c# - 在 C# 中模拟 C 数据类型

C++ 文字整数类型