Форум программистов, компьютерный форум CyberForum.ru

Как узнать реальную высоту кастомного хедера с автолайаутом в UI Table View? - Swift

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Swift Посчитать определенные символы в TextField http://www.cyberforum.ru/swift/thread1820727.html
Уже голову сломал как делать... Думаю что надо создать строку с этим символом и присвоить ей единицу, но не получается...
Swift Скрыть символы в textField. Запретить ввод менее 6 символов! Добрый день программеры iOS! Вот пытаюсь разработать страницу регистрации в мобильном приложении (учу Swift) как Вы уже, думаю, догадались! Хотелось бы скрыть символы в textField1 и 2, сделать невозможным ввод менее 6 символов в них, и сделать проверку в реальном времени на совпадение строк ( а не по клику кнопки, как сейчас) !!! Подскажите плз! http://www.cyberforum.ru/swift/thread1818572.html
Надо разобраться с х-кодом и swift Swift
только только приступил к изучению, не могу понять что происходит в SDK. Создал проект, разместил одну единственную кнопку, назначил ей действие - компилю. Какая то херня в логах появляется после нажатии в эмуляторе на кнопку и до , т.е. при запуске, по моему ощущению в логе должно появляться просто строчка за строчкой "123", скрин прилагаю, моя я что не верно делаю? ниже лог и скрины экрана,...
Как добавить звук в программу и воспроизвести его при нажатии на кнопку? Swift
Как добавить звук в программу и как сделать так, что бы он воспроизводился по нажатию на кнопку?
Swift Как запарсить json? http://www.cyberforum.ru/swift/thread1816202.html
Как записать все cityTitle и longitude в массивы? { "cityTitle" : "София", "regionTitle" : "", "stations" : } Добавлено через 1 час 24 минуты Как будет правильно указать подобный запрос внутри clearJSON? ` temp.append(clearJSON.string!)`
Swift Кнопка в Swift Друзья, как сделать круглую кнопку и как сделать так, чтобы при ее нажатии цвет этой кнопки рандомно менялся? подробнее

Показать сообщение отдельно
cheerful_weasel
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 19

Как узнать реальную высоту кастомного хедера с автолайаутом в UI Table View? - Swift

10.10.2016, 02:48. Просмотров 509. Ответов 0
Метки (Все метки)

У меня есть таблица у которой одна из Prototype Cell является хедером. Ячейка кастомизирована и в ней все элементы привязаны констрейнтами. И высота хедера зависит от загруженного контента. Т.е. картинки, которые загружаются в этот хедер могут быть разной высоты, соответственно и высота хедера тогда изменится автоматически за счёт автолайаута.

Визуально всё это работает хорошо. Я добавил в viewDidLoad строки:

Код
        self.tableView.rowHeight = UITableViewAutomaticDimension
        self.tableView.estimatedRowHeight = 500.0
        self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension
        self.tableView.estimatedSectionHeaderHeight = 500
В результате чего высота ячеек и хедера сама задаётся на основе автолайаута. Проблема возникает если в ячейках есть элементы, которые надо обновлять. К примеру мне нужно в одной из ячеек изменить количество лайков. Я меняю значение в массиве (источнике данных) для соотевтствующей позиции и делаю обновление таблицы в нужной ячейке. В результате чего таблица скролится либо вверх либо вниз на определённую высоту.

Я понимаю, что таблица берёт значения, которые я задал в estimatedRowHeight и умножает на нужное количество позиций и получает сумму высот ячеек и соответственно скролит на эту позицию. Но реальная позиция находится в другом месте и следовало бы сложить реальные высоты ячеек на основе автолайаута.

Как сделать это для ячеек таблицы я узнал. Для этого создаётся массив, где хранятся реальные высоты ячеек, а чтобы заполнить этот массив реальными высотами используется следующий метод:

Код
    override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
         rowHeights[indexPath.row] = cell.frame.height
    }
Если в таблице нет хедера, то это работает идеально. Но у меня есть хедер и как узнать его реальную высоту я не знаю. Мне кажется это не должно быть сложнее, чем узнать реальную высоту ячейки, но тем не менее я не нашёл этого нигде.

Подскажите, как мне определить реальную высоту хедера? Т.е. ту высоту, которая получилась с учётом высоты всего контента, который содержится в хедере.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru