TableView包含动态标签列表,导航栏包含两个按钮,分别称为上和下。
在这里,我从json获取数据并追加到模型。但是我无法在tableview中列出。数组值应加载到标签列表中。
这是我的json附加到模型:
[PO_PR.poItemsModel(Material: Optional("RMECC_MOB1"), Qty: Optional("2.000"), UoM: Optional("KG"), totalValue: Optional("1000.000"), Requistor: Optional(""), StorageLocation: Optional("3001"), MatGrp: Optional("00107"), valuationPrice: Optional("1000.000"), ItemCategory: Optional("0"), lineNo: Optional("00010"), UnitofPrice: Optional("1.000")),
PO_PR.poItemsModel(Material: Optional("RMECC_MOB1"), Qty: Optional("2.000"), UoM: Optional("KG"), totalValue: Optional("1000.000"), Requistor: Optional(""), StorageLocation: Optional("3001"), MatGrp: Optional("00107"), valuationPrice: Optional("1000.000"), ItemCategory: Optional("0"), lineNo: Optional("00020"), UnitofPrice: Optional("1.000"))]
首先将第一个索引的数组加载到标签列表,然后按下按钮时,将数组值的下一个加载到标签列表。
tableview中的标签将位于每个单元格中,而不是单个单元格中。
这是我的模特:
struct poItemsModel {
var Material : String?
var Qty : String?
var UoM : String?
var totalValue : String?
var Requistor : String?
var StorageLocation: String?
var MatGrp : String?
var valuationPrice : String?
var ItemCategory : String?
var lineNo : String?
var UnitofPrice : String?
init(json: JSON) {
Material = json["Material"].stringValue
Qty = json["Quantity"].stringValue
UoM = json["OrderUnit"].stringValue
totalValue = json["NetPrice"].stringValue
Requistor = json["Requistor"].stringValue
StorageLocation = json["StorageLocation"].stringValue
MatGrp = json["MatGroup"].stringValue
valuationPrice = json["NetPrice"].stringValue
ItemCategory = json["ItemCat"].stringValue
lineNo = json["Item"].stringValue
UnitofPrice = json["UnitofPrice"].stringValue
}
}
在这里我将json数据绑定到模型:
func GetPoItemCount() {
if orderNo != nil {
// Call API
print("orderni::\(orderNo!)")
PoVendorListApiManager.sharedInstance.getPoListWithModel(orderString: orderNo!){ (json:JSON) in
// return json from API
if let results = json["d"]["results"].array {
print("catefory::\(results)")
for category in results {
self.PoItemsArray.append(poItemsModel(json: category))
for (key, value) in category {
print("keyvalue\(key)\(value)")
self.poItemJsonArray.append(value)
self.poItemKeyArray.append(key)
let currency = newPrItemDetailModel(key: key, value: value)
self.newItemDetailsArray.append(currency)
}
}
let elm = self.PoItemsArray
let mirror = Mirror(reflecting: elm)
for child in mirror.children {
print("key: \(String(describing: child.label)), value: \(child.value)")
}
print("self.PoItemsArray array:::\(self.PoItemsArray)")
print("new model array:::\(self.newItemDetailsArray)")
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
}
}
}
}//extension
这是我的tableview代码:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// PoItems = loadPoItems()
print("count::itemArray::\(self.PoItemsArray.count)")
return PoItemsArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! PoItemTableViewCell
let itemDetails = PoItemsArray[indexPath.row]
// for arrayData in
// PoItems = loadPoItems()
// prItem.getProperty(at: indexPath.row)
// cell.materials.text = PoItemsArray[0].key!
// cell.materialsValue.text = itemDetails[indexPath.row]
return cell
}
如何将第一个索引数组加载到动态标签列表中,以及按下按钮时如何将值的下一个数组索引加载到动态标签列表中。
任何帮助都值得赞赏的人。...
答案 0 :(得分:1)
答案1:
请勿为此使用表格视图。这不是表视图的用途。
只需为您的布局使用StackView-十分简单,仍然可以滚动等。
完成。需要2分钟。
答案2:
如果作为练习您想使用表格视图,那将是错误的:
要做“同步/动态”表非常困难。
您 必须 具有自定义单元格类
按钮(在主屏幕上)必须以某种方式 信号 来 所有单元格 进行相关更改。
这是一个广泛的研究领域,您必须研究实现此目的的各种方法。