gpt4 book ai didi

ios - UITableViewCell 没有正确更新 swift 2.2

转载 作者:行者123 更新时间:2023-11-29 00:58:12 32 4
gpt4 key购买 nike

在我的应用程序中,我创建了两个自定义表格 View 单元格。

我现在面临的问题是第二个表格 View 单元格仅使用数组的最后一个元素进行更新。

cellForRowAtIndexpath 数组元素中显示正常。

考虑 [ "Value1", "Value2"] 是我的数组。在 tableView 中,只有 value2 显示在两个单元格中。

var title = ["value1","value2"]

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let row = indexPath.row

let x = Id[indexPath.row]

if x == 0{

let cell1 = tableView.dequeueReusableCellWithIdentifier("Cell1", forIndexPath: indexPath) as! MyCell1

return cell1
}
else{

let cell2 = tableView.dequeueReusableCellWithIdentifier("Cell2", forIndexPath: indexPath) as! MyCell2

for index in 0..<myArray.count{
cell2.titleButton.setTitle(title[index],forState:UIControlState.Normal)
}
return cell2
}
}

我被困在这里,我们将不胜感激您的帮助。

最佳答案

以下是解决方案,它超出范围的原因是因为每次向下滚动时调用 cellforrowAtIndexPath 时单元格被取消队列时值增加(因为一些单元格不可见并且当我们向下滚动时这些单元格被取消队列): -

    var name = ["HouseBolo","HouseBolo1","HouseBolo2","HouseBolo3"]
var propertyVal:Int = 0
var projectVal:Int = 0
var type = ["Apartment","Villa","Home","Flat","Plot"]
var arrangedData = [String]()
var flatId = [0,1,2,0,0]

override func viewDidLoad() {
super.viewDidLoad()
// I want the Expected Output in Tableview Cell is
// 1. Apartment 2. HouseBolo 3. HouseBolo1 4. Villa 5. Home


for item in flatId {
if item == 0 {
arrangedData.append(type[propertyVal])
propertyVal+=1
}
else {
arrangedData.append(name[projectVal])
projectVal+=1
}
}
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrangedData.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let flatDetails = flatId[indexPath.row]

// For Property Cell
if flatDetails == 0{
let cell = tableView.dequeueReusableCellWithIdentifier("Cell1", forIndexPath: indexPath) as? PropertyCell

if(cell != nil) {
cell!.pType.text = arrangedData[indexPath.row]
}
return cell!
}
// For Project Cell
else {

let cellan = tableView.dequeueReusableCellWithIdentifier("Cell2", forIndexPath: indexPath) as? ProjectCell

if(cellan != nil) {
cellan!.projectName.setTitle(arrangedData[indexPath.row], forState: UIControlState.Normal)
}
return cellan!
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}

关于ios - UITableViewCell 没有正确更新 swift 2.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37384402/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com