Ich habe einen Array-Typ von String-Arrays und ich es tableView
innerhalb for loop.Ich weiß es eine schlechte Übung Schleife innerhalb cellForRowAt indexPath
: Funktion, aber ich habe keine solution.My Problem ist auf i mehr Subviews einfügen jedes Mal, wenn ich meine tableview
auf Simulator bewegen, ones.it vorhandene ältere überschrieben und iSwift 3 UITableView Zellseparator verschwindet, wenn ich Zelle Subviews entfernen
for view in cell.subviews {
view.removeFromSuperview()
}
verwenden, um zu verhindern, aber es löscht meine Zelle seperators mit meinem älteren Zell Etiketten. Wie kann ich nur Zellendaten entfernen, nicht meine Trennzeichen?
func tableView(_ tableView: UITableView, cellForRowAt indexPath:IndexPath) -> UITableViewCell {
var cell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell")! as UITableViewCell
//print(cell.subviews)
for view in cell.subviews {
view.removeFromSuperview()
}
for i in 0..<globalHeaderStructArray.count{
var newLabel = UILabel(frame: CGRect(x:xCoordination, y:10, width:Double(globalHeaderStructArray[i].width)!, height:30.0))
newLabel.font = UIFont(name: "Avenir", size: 17.0)
newLabel.textColor = UIColor.darkGray
newLabel.text = "\(globalDataArray[indexPath.row][i])"
var scrollview = UIScrollView(frame: cell.bounds)
scrollview.contentSize = CGSize(width:cell.bounds.width * 5, height:cell.bounds.height) // will be 5 times as wide as the cell
scrollview.isPagingEnabled = true
cell.contentView.addSubview(scrollview)
cell.addSubview(newLabel)
xCoordination += Double(globalHeaderStructArray[i].width)!
}
xCoordination = 0.0
return cell
}
Wie können wir _never_ die Verwendung von mehrdeutigen Tags fördern, es sei denn, 100% absolut notwendig (was extrem selten ist und normalerweise für ältere Architekturprobleme verantwortlich ist)? Wenn Sie eine Referenz benötigen, verwenden Sie Zeiger ..... – TheCodingArt