Create static tableView for Form to easy validate anh delegate

```
class ProfileInfoView: BaseTableView {
var cells = [ProfileInfoTableViewCell]()

var isFirstInitCells = true

var user : UserModel! {
didSet {
self.profileHeader.viewDelegate = self
self.profileHeader.user = self.user
self.setAndLayoutTableHeaderView(self.profileHeader)
self.createCells()
self.reloadData()
}
}

let validator = Validator()
let profileHeader = ProfileInfoHeaderView()

override func initComponents() {
super.initComponents()

self.dataSource = self

self.backgroundColor = UIColor.white
self.separatorStyle = .none
self.showsVerticalScrollIndicator = false

self.estimatedRowHeight = ProfileInfoTableViewCell.getCellSize()
self.rowHeight = UITableViewAutomaticDimension
}

override func didChangeLanguage() {
super.didChangeLanguage()
}

fileprivate func createCells() {
if isFirstInitCells {
let cell1 = ProfileInfoTableViewCell()
cell1.viewDelegate = self
cell1.detail.text = "yosing.profileInfo.name.detail".localized()
cell1.textField.placeholder = "yosing.profileInfo.name.placeholder".localized()
cell1.textField.text = self.user.name
cell1.textField.tag = 90
self.validator.registerField(cell1.textField, errorLabel: profileHeader.errorLabel, rules: [RequiredRule(), FullNameRule()])
cell1.textField.delegate = self
self.cells.append(cell1)

let cell2 = ProfileInfoTableViewCell()
cell2.viewDelegate = self
cell2.detail.text = "yosing.profileInfo.slug.detail".localized()
cell2.textField.placeholder = "yosing.profileInfo.slug.placeholder".localized()
self.validator.registerField(cell2.textField, errorLabel: profileHeader.errorLabel, rules: [RequiredRule(), SlugValidatorRule()])
cell2.textField.text = self.user.slug
cell2.textField.tag = 95
cell2.textField.delegate = self
self.cells.append(cell2)

let cell3 = ProfileInfoTableViewCell()
cell3.viewDelegate = self
cell3.detail.text = "yosing.profileInfo.email.detail".localized()
cell3.textField.placeholder = "yosing.profileInfo.email.placeholder".localized()
cell3.textField.text = self.user.email
cell3.textField.keyboardType = .emailAddress
self.validator.registerField(cell3.textField, errorLabel: profileHeader.errorLabel, rules: [EmailRule()])
cell3.textField.tag = 100
cell3.textField.delegate = self
self.cells.append(cell3)

let cell4 = ProfileInfoTableViewCell()
cell4.viewDelegate = self
cell4.detail.text = "yosing.profileInfo.phone.detail".localized()
cell4.textField.placeholder = "yosing.profileInfo.phone.placeholder".localized()
cell4.textField.text = self.user.phone_number
cell4.textField.keyboardType = .numberPad
cell4.textField.tag = 105
self.validator.registerField(cell4.textField, errorLabel: profileHeader.errorLabel, rules: [MinLengthRule(length: 10)])
cell4.textField.delegate = self
self.cells.append(cell4)

let cell5 = ProfileInfoTableViewCell()
cell5.viewDelegate = self
cell5.detail.text = "yosing.profileInfo.birthday.detail".localized()
cell5.textField.placeholder = "yosing.profileInfo.birthday.placeholder".localized()
if let birthday = self.user.birthdate {
cell5.textField.text = birthday.substring(to: (birthday.index(birthday.startIndex, offsetBy: 10)))
}
cell5.textField.tag = 110
cell5.textField.delegate = self
self.cells.append(cell5)

let cell6 = ProfileInfoTableViewCell()
cell6.viewDelegate = self
cell6.detail.text = "yosing.profileInfo.gender.detail".localized()
cell6.textField.placeholder = "yosing.profileInfo.gender.placeholder".localized()
cell6.textField.text = self.user.gender
cell6.textField.tag = 115
cell6.textField.delegate = self
self.cells.append(cell6)

cell1.textField.becomeFirstResponder()
self.isFirstInitCells = false
}
}

override func touchesBegan(_ touches: Set, with event: UIEvent?) {
self.endEditing(true)
}
}

extension ProfileInfoView: UITableViewDataSource {

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.cells.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return self.cells[indexPath.row]
}

func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
}
```