Ich möchte meine Zahlen in die uitableviewcell Schleife und Drucken aller Werte von der höchsten Zahl bis zum niedrigsten und druckt sie in jeder Zelle. Ich habe den vollständigen Code veröffentlicht. Siehe den cell.text
Ausgang. Dies ist mein Code:Schleife verringerte Zahlen in uitableviewcell
import UIKit
class tableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
var arr = [Int]()
var cell:tableCell!
var Payment: float_t! = 59600
var years1: float_t! = //15 * 12 = 180
var monthlyPayment: float_t! = 471
var interest: float_t! = 5%
var principal: float_t! = 222
var interstate: float_t! = 249
var initil: float_t!
var data = Array<float_t>()
var data2: NSMutableArray = []
override func viewDidLoad() {
super.viewDidLoad()
let c = Int(years1)
arr += 0...c
tableCalculation()
let nib = UINib(nibName: "table", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "cell")
}
func tableCalculation() {
let years = Int(years1)
initil = TPayment - 0
for i in 0..<years {
initil = initil - principil
interest = initil * interestrate
principil = monthlyPayment - interest
print("Month : \(monthlyPayment), principil: \(principil),interest: \(interest), initi: \(initil)")
self.data2 = [initil]
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arr.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
cell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! tableCell
cell.lbl1.text = "\(arr[indexPath.row])"
cell.lbl2.text = currencyFormatter(monthlyPayment)
cell.lbl3.text = currencyFormatter(interest)
cell.lbl4.text = currencyFormatter(principil)
cell.lbl5.text = "\(self.data2[indexPath.row % data2.count])"
return cell
}
// 4
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Row \(indexPath.row) selected")
}
// 5
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 70
}
func currencyFormatter(Price: float_t) ->String {
let currencyFormatter = NSNumberFormatter()
currencyFormatter.usesGroupingSeparator = true
currencyFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
// localize to your grouping and decimal separator
let numberOfPlaces: float_t = 1.0
let multiplier: float_t = pow(10.0, numberOfPlaces)
let num = Price
let rounded = round(num * multiplier)/multiplier
let priceString = currencyFormatter.stringFromNumber(rounded)
return priceString!
}
}
Dieser Code gibt mir immer die letzte Nummer der Schleife für alle Werte, ich mag es ändern, um vom ersten Wert auf den letzten in jeder Zelle zu schreiben.
Sie können es nicht so machen. Die Tabellenansicht ruft "cellForRowAtIndexPath" so auf, wie sie es für richtig hält, basierend darauf, welche Zeilen auf dem Bildschirm angezeigt werden. Sie könnten Ihre Berechnungen in einem Array speichern und den Inhalt in 'cellForRowAtIndexPath' anzeigen. – Michael
Was ist der Sinn dieser 'if' Aussage? "initial" wird immer gleich sein. – rmaddy