swift - 以编程方式不改变宽度的 UISlider
问题描述
我的快速代码是所有代码,没有故事板。当值改变时,我的滑块 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)
}
}
解决方案
重置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)
}
推荐阅读
- rest - 如何设计用于向用户发送电子邮件的restful api
- wordpress - wp_options 表中的 site_url 与设置中的站点 URL 不匹配 > 常规
- php - 重音字符的 PHP 正则表达式
- java - 运行“Java 中的数据结构和算法”一书中的旧 Java 小程序
- react-native - 自定义 React 抽屉导航
- symfony - 如何使用文档中提到的服务来生成 url?
- php - 如何使用我的自定义 foreach 循环数据的 joomla 分页
- javascript - JS 库的 Angular 包装器不加载样式
- c# - 数字范围的正则表达式
- oracle - sysdate 到 unix 时间戳