2016-01-16 2 views
1

Я создаю приложение регистрационной формы. Приложение позволяет пользователям создавать регистрационные формы, и эти регистрационные формы отображаются с использованием 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. Ваша помощь будет принята с благодарностью.

ответ

2

Может быть, вы должны попробовать:

  1. Создание 1 пользовательских UITableViewCell с UITextField и другой с UISegmentedControl (не забудьте создать идентификатор для каждого типа клеток)
  2. На вашем cellForRowAtIndexPathindexPath, проверки если текущий тип вопроса - textInput или multiChoice и используйте соответствующий идентификатор для отображения правой ячейки.

Я надеюсь, что это помогает

+0

Я дам ему попробовать! Имеет большой смысл! Цените помощь: D – Malexc

+0

Добро пожаловать. Не забудьте сказать, если это сработало и принять ответ, если он это сделал :) – scollaco

+1

Да, я получил его! – Malexc

Смежные вопросы