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) } }
source share