Я создаю приложение регистрационной формы. Приложение позволяет пользователям создавать регистрационные формы, и эти регистрационные формы отображаются с использованием UITableView. Вопросы могут быть либо в виде текстового ввода (UITextField), либо в виде множественного выбора (UISegmentedControl). У меня есть работа по созданию вопроса, но я не могу понять, как отображать UITextFields и UISegmentedControls в UITableView. Это класс, который я использую для создания вопроса:Swift: добавление UISegmentedControl/UITextField к динамическому UITableView
class Question {
var Label: String
var required: Int
// create question
init (Label: String, required: Int) {
self.Label = Label
self.required = required
if (self.required == 0) {
self.Label = self.Label + " *"
}
}
}
class textInput: Question {
var placeHolder: String
init (placeHolder: String, Label: String, required: Int) {
self.placeHolder = placeHolder
super.init(Label: Label, required: required)
}
}
class multiChoice: Question {
var answers: [String]
init(answers: [String], Label: String, required: Int) {
self.answers = answers
super.init(Label: Label, required: required)
}
}
Вот моя текущая реализация cellForRowAtIndexPath. Очевидно, что это должно измениться, чтобы отобразить необходимое содержимое.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
cell.textLabel?.text = self.questionsArray[indexPath.row].Label
return cell
}
Одно из возможных решений, я думал о делают UITextField и UISegmentedControl переменного класса, так что они могут быть легко созданы и инициализированы в классе. Тем не менее, я до сих пор не знаю, как их отображать. Я сомневаюсь, что есть опция cell.textfield. Ваша помощь будет принята с благодарностью.
Я дам ему попробовать! Имеет большой смысл! Цените помощь: D – Malexc
Добро пожаловать. Не забудьте сказать, если это сработало и принять ответ, если он это сделал :) – scollaco
Да, я получил его! – Malexc