Dynamic TableView中的多个单元格原型

时间:2016-02-25 06:57:27

标签: ios swift uitableview

enter image description here

我想创建一个这样的表,其中一个部分中将有两个单元格。在第一个单元格中,轮廓图像出现在第二个单元格中。到目前为止我尝试过的是将Prototypes设置为2并为每个原型提供一个唯一的标识符,并为两个原型创建了两个类。但问题是它显示两行,但两行都有相同的数据。

var profileImage = ["angelina","kevin"]
    var userName = ["Angelina Jolie","Vasiliy Pupkin"]
    var requestTitle = ["I have a Wordpress website and I am looking for someone to create a landing page with links and a cart to link up.","second description"]
    var date = ["Feb 03, 16","Feb 03, 16"]

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return profileImage.count

    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        // #warning Incomplete implementation, return the number of rows
        return profileImage.count
    }

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



            if(indexPath.row==0){
                let cell = tableView.dequeueReusableCellWithIdentifier("firstCustomCell", forIndexPath: indexPath) as! FirstProductRequestTableViewCell

                cell.userNameLabel.text = userName[indexPath.row]
                cell.profileImage.image = UIImage(named: profileImage[indexPath.row])
                return cell

            }else{




                let cell = tableView.dequeueReusableCellWithIdentifier("secondCustomCell", forIndexPath: indexPath) as! SecondProductRequestTableViewCell

               cell.requestTitleTxtView.text = requestTitle[indexPath.row]
                return cell

                      }
               }

2 个答案:

答案 0 :(得分:1)

以下是您问题的解决方案。

在这种情况下,您需要使用 UITableViewSecionHeaderView ,因为我认为在您的方案中您对配置文件有多个描述,因此请将 SecionHeader 包含配置文件和单元格的信息包含说明。

但是如果你想重复整个单元格,那么你只需要创建一个包含行分隔符的配置文件信息和描述的CustomCell。您可以使用Image或使用高度为1.0的UIView和颜色浅灰色来创建行分隔符。

答案 1 :(得分:0)

根据您的说明,返回的部分数量是正确的,但您应该返回2表示每个部分中的行数,在配置单元格时,您应该使用indexPath.section所在的位置目前正在使用该行来选择要添加到单元格的数据(但继续使用该行来选择要返回的单元格类型)。

因此,该部分用于选择您要显示详细信息的人员,并使用该行来选择要显示的信息:

var profileImage = ["angelina","kevin"]
var userName = ["Angelina Jolie","Vasiliy Pupkin"]
var requestTitle = ["I have a Wordpress website and I am looking for someone to create a landing page with links and a cart to link up.","second description"]
var date = ["Feb 03, 16","Feb 03, 16"]

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return profileImage.count
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 2
}

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

    if(indexPath.row == 0) {
        let cell = tableView.dequeueReusableCellWithIdentifier("firstCustomCell", forIndexPath: indexPath) as! FirstProductRequestTableViewCell

        cell.userNameLabel.text = userName[indexPath.row]
        cell.profileImage.image = UIImage(named: profileImage[indexPath.section])

        return cell
    } else {
        let cell = tableView.dequeueReusableCellWithIdentifier("secondCustomCell", forIndexPath: indexPath) as! SecondProductRequestTableViewCell
        cell.requestTitleTxtView.text = requestTitle[indexPath.section]

        return cell
    }
}