2015-10-21 2 views
0

Я сначала построил обычную пользовательскую ячейку без наконечника, и она отлично работала. Но теперь мне нужно повторно использовать одну и ту же компоновку ячеек в разных представлениях, поэтому я пытаюсь использовать наконечник вместо обычной ячейки прототипа. Ячейка дисплея, с информацией внутри. Но я не могу с этим взаимодействовать. Например, я не могу писать в текстовом поле. Когда я нажимаю, он просто выбирает всю ячейку (хотя я отключил выбор ячейки в параметрах tableview).Swift 2 nib in uitableview загружает, но не позволяет взаимодействовать

Я пробовал различные способы инициализации ячейки, но он либо сбой, либо ничего не делает.

Вот мой код:

CelluleView (пользовательские ячейки)

class CelluleView: UITableViewCell { 

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 
    super.init(style: style, reuseIdentifier: reuseIdentifier) 
    } 

    required init(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder)! 
    } 

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

ViewController

class PersoViewController: UITableViewController { 

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(true) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let nib = UINib(nibName: "CelluleView", bundle: nil) 
    tableView.registerNib(nib, forCellReuseIdentifier: "Cellule") 

    tableView.dataSource = self 
    tableView.delegate = self 

    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 1 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cellule = tableView.dequeueReusableCellWithIdentifier("Cellule", forIndexPath: indexPath) as! CelluleView 

    return cellule 
} 
} 

ответ

2

Одним из решений было бы включить выделение в виде таблицы.

Установите стиль выбора на ни

override func awakeFromNib() { 
    super.awakeFromNib() 
    selectionStyle = UITableViewCellSelectionStyle.None 
} 

Создать выход для TextField

@IBOutlet weak var textField: UITextField! 

и соединить его с пером

Затем в клетке реагировать на выбор и установить текстовое поле, чтобы стать первым ответчиком

override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    textField.becomeFirstResponder() 
} 
+0

он работает! но затем он центрируется вокруг текстового поля, и я не могу прокручивать вниз до других ячеек, если я их не выберу. Я также добавил кнопку рядом с текстовым полем, но я не могу «щелкнуть» ее ... – DRV

+0

Это заставляет меня задаться вопросом, как настроены ваши взгляды ... Я никогда не испытывал таких проблем. – Moriya

+0

Когда я сталкиваюсь с подобными проблемами, я обычно использую инструмент иерархии представлений, показанный во втором ответе в этом сообщении http://stackoverflow.com/questions/5150186/how-do-i-inspect-the-view-hierarchy- in-ios Это отличная возможность проверить, есть ли какие-либо виды, блокирующие прикосновение или подобное. – Moriya

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