Расширение ячейки таблицы UITableViewCell

uitableviewcell

#21

Из ячейки? Создать контроллер? Месье знает толк… :0)

нельзя так делать! Отлови событие нажатия на ячейку в контроллере и пусть он создает то что нужно.


#22

не суди строго бро только начинаю :slight_smile: забыл дописать в ячейке есть кнопка по нажатию на которую нужно открыть вьюконтролер - из ячейки я так понял только через сегвей это можно сделать, правильно я понимаю?

кстати для скрытия открытия разделителя в таблице вот такой компактный код нашел
extension UITableViewCell {
func hideSeparator() {
self.separatorInset = UIEdgeInsets(top: 0, left: self.bounds.size.width, bottom: 0, right: 0)
}

func showSeparator() {
    self.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}

}

может кому пригодится


#23

Ячейка нужна только для отображения какой-то инфы и отправки событий (нажали кнопки, ввели текст итп). Вся обработка должна передаваться в контроллер.


#24

мне нужно по нажатию кнопки которая находится в ячейке таблицы открыть вьюконтроллер и отобразить некоторые данные


#25

ячейка -> нажатие кнопки -> протокол -> VC
на форуме эта тема обсуждалась уже ооочень много раз и в интернете этого полно.


#26

ткни плиз носом в тему на форуме почитаю ее обязательно


#27

Раз https://stackoverflow.com/questions/26143820/swift-segue-from-button-inside-a-cell
Два https://www.youtube.com/watch?v=UPrBXUWPf6Q
Третий вариант через замыкание, так же есть тут на форуме, нужно лишь поискать


#28

подскажите например если метка в ячейке таблицы не нужна как уменьшить ее задать 0 для ее высоты? так что ли? чтобы ячейка сжалась на высоту ненужной метки


#29

поставь .isHidden = true

И повторюсь, надо идти и смотреть базовый курс по swift!


#30

я знаю это свойство и так делаю но место выделенное под метку остается и не сжимается


#31

Тогда пришла пора изучить волшебное свойство ячеек SelfSizing :slight_smile:


#32

Если по простому, то используй метод heightForRowAt
например так:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        var height = 0
        // логика определения высоты... if else или switch - тут присваивай height нужную высоту и потом её возвращай
        return CGFloat(height)
    }

Каждая я чейка получится разной высотой в соответсвии с работой вашей логики. Не по феншую, зото просто и понятно для новичка.