Add Text Label and Button to dynamic tableview cell programmatically with Swift

后端 未结 2 2062
情深已故
情深已故 2021-02-06 10:08

I have a dynamic tableview and a prototype cell which displays an array. My questions is how would I add a button which displays different names on each cell to the Left side of

2条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-02-06 10:50

    You can implement like this

    let titleArray = ["a", "b", "c"]
    
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 50
    }
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        //return no.of cell do you want
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cellHeight = tableView(self.tableView, heightForRowAtIndexPath: NSIndexPath(forRow: indexPath.row, inSection: indexPath.section))
        var cell = CustomCell(frame: CGRectMake(0, 0, self.view.frame.width, cellHeight), title: titleArray[indexPath.row])
        cell.cellLabel.text = //labelText
        cell.cellButton.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
    
        return cell
    }
    
    class CustomCell: UITableViewCell {
        var cellButton: UIButton!
        var cellLabel: UILabel!
    
        init(frame: CGRect, title: String) {
            super.init(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
    
            cellLabel= UILabel(frame: CGRectMake(self.frame.width - 100, 10, 100.0, 40))
            cellLabel.textColor = UIColor.blackColor()
            cellLabel.font = //set font here
    
            cellButton = UIButton(frame: CGRectMake(5, 5, 50, 30))
            cellButton.setTitle(title, forState: UIControlState.Normal)
    
            addSubview(cellLabel)
            addSubview(cellButton)
        }
    
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
    
        override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
            super.init(style: style, reuseIdentifier: reuseIdentifier)
        }
    }
    

提交回复
热议问题