Skip to content

VKEducation/ios-itmo-2020-assignment-3-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Большая таблица

Предпосылки

UIKit содержит таблицу UITableView. Это очень удобный компонент для построения интерфейсов. К сожалению, он не справляется с большим количеством ячеек.

Исходные данные

Приложение содержит два экрана. Первый создан для отладки. На нём посередине экрана помещена таблица с рамкой. В таблице должны быть показаны 50 ячеек. На втором экране таблица занимает всё пространство. В таблице должен быть показан триллион ячеек.

Задание

Основное: В проекте есть класс TableView. Необходимо добавить имплементацию, не меняя публичного интерфейса. Таблица должна показывать ячейки класса TableCell. Высота каждой ячейки - 40, ширина совпадает с шириной таблицы.

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

Подсказки

  • Свойство таблицы dataSource будет ненулевым сразу после инициализации таблицы. К нему можно обращаться для того, чтобы узнать какое количесство строк должна отображать таблица, а также какой текст должен быть у каждой ячейки TableCell.
  • Размер таблицы на экране и размер контента, который она отображает это разные вещи. Для модификации размера контента можно использовать свойство contentSize.
  • Каждый объект класса UIView (и подклассы, например наша таблица TableView) удовлетворяют протоколу UICoordinateSpace. В нём содержатся методы для преобразования между разными системам координат.
  • Начните с того, что задайте произвольный большой contentSize своей таблице (например в инициализаторе) и посмотрите на значения bounds и frame в методе layoutSubviews() таблицы при скролле. Обратите внимание когда и как часто вызывается метод layoutSubviews().

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages