2016-09-26 69 views
0

我创建了一个自定义的UITableViewCell,其左侧有一个标签,右侧有一个文本字段。但是,在桌子上,标签显示出来,但文本框不显示。为什么会发生这种情况,我该如何解决这个问题?自定义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; 
    } 
} 
+2

什么是你的高度单元?您将UITextField origin.Y设置为100,也许它不可见 – ronan

+0

为文本字段设置bg颜色并检查。 –

+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. 
    } 


} 

注:设置框架按您的要求。

输出:

ScreenShot

+0

谢谢!我使用了您为cellLabel和cellTextField的框架所设置的尺寸,并且它工作正常! – 14wml