下面是我在Xcode中编写的用于在调整滑块时显示乘法表的代码;滑块组的最小值为0.05,最大值为1。项目中有一个表格视图和滑块。我添加了打印语句来调试代码。当我最后将Table1.Reload()添加到sliderChanged函数时,我得到的是2的乘法表,但是当我调整滑块时,它并没有改变。滑块值越来越大。但是,一旦我删除了重载方法,滑块值就会正确更改,但是乘法表会被打到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.
}
}
答案 0 :(得分:1)
欢迎您!我用注释过的Table1.reloadData()
尝试了您的代码,发现您的代码有一个非常基本的错误:
在函数multiply()
中,您有一个while
循环,该循环将j
递增到50,并将数据源的内容设置为此值。 j
达到50后,就没有任何变化。
因此,您必须更正循环以显示所需的内容。