我创建了一个自定义的UITableViewCell,左边是标签,右边是文本字段。但是,在表格上,标签显示,但文本字段不显示。为什么会发生这种情况?我该如何解决这个问题?
class TableViewCell: UITableViewCell {
var cellLabel: UILabel!
var textField: UITextField!
let tableViewController:TableViewController = TableViewController()
init(frame: CGRect, title: String) {
super.init(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
cellLabel = UILabel(frame: CGRectMake(0, 0, 100, 40))
let cellTextField = UITextField(frame: CGRectMake(bounds.width*0.2, 100, bounds.width*0.75, 50))
cellTextField.delegate = tableViewController
self.addSubview(cellLabel)
self.addSubview(cellTextField)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
}
class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate {
var tableView: UITableView = UITableView()
let cellLabels : [String] = ["ID","Number of Times Infected"]
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
var cell = TableViewCell(frame: CGRectMake(0, 0, self.view.frame.width, 50), title: cellLabels[indexPath.row])
cell.cellLabel!.text = cellLabels [indexPath.row]
return cell;
}
}
答案 0 :(得分:3)
//TableViewCell Class
class TableViewCell: UITableViewCell {
var cellLabel: UILabel!
var textField: UITextField!
let tableViewController:ViewController = ViewController()
init(frame: CGRect, title: String) {
super.init(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
cellLabel = UILabel(frame: CGRectMake(0, 0, bounds.width/2, 40))
let cellTextField = UITextField(frame: CGRectMake(cellLabel.frame.size.width+5, 0, bounds.width*0.75, 50))
cellTextField.placeholder = "Enter Your Text here"
cellTextField.delegate = tableViewController
self.addSubview(cellLabel)
self.addSubview(cellTextField)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
//View Controller Class
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate,UITextFieldDelegate
{
var tableView: UITableView = UITableView()
let cellLabels : [String] = ["ID","Number of Times Infected"]
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return cellLabels.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell = TableViewCell(frame: CGRectMake(0, 0, self.view.frame.width, 50), title: cellLabels[indexPath.row])
cell.cellLabel!.text = cellLabels [indexPath.row]
return cell;
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}
注意:根据您的要求设置框架。
输出: