

以下のサイトを参考にしてプロジェクトを作成しました。  
<http://an.hatenablog.jp/entry/2015/10/04/015712>

cellのIdentifierは"InputTextCell"とし、LabelとTextFieldはAutoLayoutで位置を調整しました。  
実行するとTableviewと空のcellが表示されるだけでLabelとTextFieldは表示されません。  
何が問題でしょうか。

//viewController.swift

[code]

    import UIKit
    
    class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, InputTextTableCellDelegate {
    
        @IBOutlet weak var tableView: UITableView!
    
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 10
        }
    
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell: InputTextTableCell = tableView.dequeueReusableCell(withIdentifier: "InputTextCell", for: indexPath) as! InputTextTableCell
            // delegate設定
            cell.delegate = self
            return cell
        }
    
        // MARK: - UITableViewDelegate
        func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
            return InputTextTableCell.height()
        }
    
        // 追加
        // MARK: - InputTextTableCellDelegate
        func textFieldDidEndEditing(cell: InputTextTableCell, value: NSString) -> () {
            let path = tableView.indexPathForRow(at: cell.convert(cell.bounds.origin, to: tableView))
        NSLog("row = %d, value = %@", path!.row, value)
        }
    
    }
    
[/code]

//InputTextTableCell.swift

[code]

    import UIKit
    
    // 追加
    protocol InputTextTableCellDelegate {
        func textFieldDidEndEditing(cell: InputTextTableCell, value: NSString) -> ()
    }
    
    class InputTextTableCell: UITableViewCell, UITextFieldDelegate {
        var delegate: InputTextTableCellDelegate! = nil
    
        @IBOutlet weak var textField: UITextField!
        @IBOutlet weak var label: UILabel!
    
    
        override func awakeFromNib() {
            super.awakeFromNib()
            // Initialization code
        }
    
        override func setSelected(_ selected: Bool, animated: Bool) {
            super.setSelected(selected, animated: animated)
    
            // Configure the view for the selected state
        }
    
        static func height() -> CGFloat {
            return 75.0
        }
    
        // MARK: - UITextFieldDelegate
        internal func textFieldShouldReturn(textField: UITextField) -> Bool {
            textField.resignFirstResponder()
            return true
        }
    
        // 追加
        internal func textFieldDidEndEditing(textField: UITextField) {
            self.delegate.textFieldDidEndEditing(cell: self, value: textField.text! as NSString)
        }
    
    }
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/zqvbC.png)](https://i.stack.imgur.com/zqvbC.png)


CC BY-SA 4.0
2018-08-24T17:14:07.983
47795
2018-08-24T17:25:20.257
2018-08-24T17:25:20.257
28058
28058
question
swift swift4 uitableview
TableViewのCellが正しく表示されない