は、私はそれが
1-作成@IBActionsの単なる質量量よりもはるかにきれいなアプローチであることがわかりました語学クラス 輸入財団
class Language {
var id: Int
var name: String
init(id: Int, name: String) {
self.id = id
self.name = name
}
}
2-ストーリーボードやペン先でカスタムセルを作成し、適切なアウトレットとアクションを追加します。それは
import UIKit
protocol CustomCellDelegate: class {
func customCell(newLanguageSelected language: Language)
}
class CustomCell: UITableViewCell {
var language: Language!
@IBOutlet weak var languageTextLabel: UILabel!
weak var delegate: CustomCellDelegate?
func setupCustomCell(withLanguage language: Language){
self.language = language
self.languageTextLabel.text = self.language.name
}
@IBAction func buttonPressed(sender: UIButton){
delegate?.customCell(newLanguageSelected: self.language)
}
}
、3-最後にUITableViewDataSourceのcellForRow方法で実装を追加してのUITableViewControllerクラス
import UIKit
class YourTableViewController: UITableViewController{
var languages: [Language] = []
//implement the other methods in the dataSource
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuse", for: indexPath) as! CustomCell
cell.delegate = self
cell.setupCustomCell(withLanguage: languages[indexPath.row])
return cell
}
}
extension YourTableViewController: CustomCellDelegate{
func customCell(newLanguageSelected language: Language) {
//Do what you will with the language
}
}
幸運
にデリゲートの実装を追加するために、その後、あなたは委任プロトコルを作成します
静的コンテンツの代わりに動的コンテンツを使用してtableViewを作成してください。そうすれば、無限の量の言語をサポートすることができます。アドバイスの単語は、iOSで変数名とメソッドをタイプするときに、より低いラクダケースを使用します。私は秒で答えを書くでしょう。私はあなたがUITableViewDataSourceを操作する方法を知っており、カスタムセルを作成する方法を知っているという前提で取り組んでいます – DatForis