Невозможно отобразить таблицу умножения с помощью ползунка в iOS - PullRequest
0 голосов
/ 25 февраля 2019

Ниже приведен код, который я написал в Xcode для отображения таблицы умножения, когда ползунок настроен;минимальное значение набора слайдеров было 0,05, а максимальное - 1. В проекте есть таблица и слайдер.Я добавил операторы print для отладки кода.Когда я добавляю 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.
    }



}

1 Ответ

0 голосов
/ 26 февраля 2019

Добро пожаловать на ТАК!Я попробовал ваш код с Table1.reloadData() без комментариев, и обнаружил, что в вашем коде есть очень простая ошибка:
В функции multiply() у вас есть цикл while, который увеличивает j до 50,и устанавливает содержимое вашего источника данных на это значение.Как только j достигнет 50, ничего не изменится.
Так что вам пришлось исправить свой цикл, чтобы показать, что требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...