下面是我在 Xcode 中编写的用于在调整 slider 时显示乘法表的代码; slider 设置的最小值为 0.05,最大值为 1。项目中有一个 TableView 和 slider 。我添加了打印语句来调试代码。当我最后将 Table1.Reload() 添加到 sliderChanged 函数时,我得到了 2 的乘法表,但是当我调整 slider 时它没有改变。 slider 值被击中。但是,一旦我删除重新加载方法, slider 值就会正确更改,但乘法表会敲到 0。
import UIKit
class ViewController: UIViewController,UITableViewDelegate, UITableViewDataSource {
// var cellcontent[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
var cellcontent = [Int](repeating: 0, count: 50 )
var countr=50
var count:Float=0.0
var count2:Int=0
var i=0
var j=0
internal func multiply(){
print("check1")
while j<50{
// print(i)
i+=1
// yourArray.insert("Hey, I'm first!", atIndex: 0)
cellcontent[j] = i*count2
// cellcontent.insert(cellcontent[j],at:j)
print(cellcontent[j])
j=j+1
}
}
internal func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cellcontent.count
}
internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell=UITableViewCell(style:UITableViewCell.CellStyle.default,reuseIdentifier: "cell")
// cell.textLabel?.text="Top row"
// print("c")
//multiply()
cell.textLabel?.text=String(cellcontent[indexPath.row])
return cell
}
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var Table1: UITableView!
@IBAction func sliderChanged(_ sender: Any) {
//slider.maximumValue=Float(Int(countr))
count=(slider.value*20)
count2 = Int(round(count))
print(count2)
print(count)
multiply()
// Table1.reloadData()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}
最佳答案
欢迎来到SO!我用 Table1.reloadData()
注释掉了你的代码,发现你的代码有一个非常基本的错误:
在函数 multiply()
中,您有一个 while
循环递增 j
直到它是 50,并将数据源的内容设置为此值(value)。一旦 j
达到 50,就不会再有任何变化。
因此,您必须更正循环以显示所需内容。
关于ios - 无法在 iOS 中使用 slider 显示乘法表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54872450/