Adding a text label and button to a dynamic cell in a software table using Swift

I have a dynamic table and a prototype cell that displays an array. My questions are: how can I add a button that displays different names in each cell on the left side of the cell, and then a label on the right that displays information about the array. Thank you !: D

So imagine this is the cell below:

Left side: button (array information) <-------------------> Right side: TextLabel (array information)

+5
source share
2 answers

You can implement this as

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) } } 
+6
source

I have a solution for your question, please follow these steps.

 var data = ["iPad", "iPhone", "iWatch", "iPod", "iMac"] var buttonData = ["US","China","London","Canada","Japan"]; //UITableViewDataSource Methods func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return 80 } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return data.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell var label = UILabel(frame: CGRectMake(280.0, 14.0, 100.0, 30.0)) label.text = data[indexPath.row] label.tag = indexPath.row cell.contentView.addSubview(label) let btn = UIButton.buttonWithType(UIButtonType.Custom) as UIButton btn.backgroundColor = UIColor.greenColor() btn.setTitle(buttonData[indexPath.row], forState: UIControlState.Normal) btn.frame = CGRectMake(0, 5, 80, 40) btn.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.TouchUpInside) btn.tag = indexPath.row cell.contentView.addSubview(btn) return cell } //Button Action is func buttonPressed(sender:UIButton!) { let buttonRow = sender.tag println("button is Pressed") println("Clicked Button Row is",buttonRow) } 
+1
source

Source: https://habr.com/ru/post/1233411/


All Articles