Как сделать растягиваемый вид коллекции представлений заголовка [Swift] - PullRequest
0 голосов
/ 25 декабря 2018

В моем быстром приложении есть представление коллекции, и я хочу создать растягиваемый вид заголовка, например, в виде таблицы: https://medium.com/if-let-swift-programming/how-to-create-a-stretchable-tableviewheader-in-ios-ee9ed049aba3

1 Ответ

0 голосов
/ 25 декабря 2018

Вы уже ответили на свой вопрос со ссылкой на эту статью, если я что-то упустил.

Я скопирую и вставлю для вас и других лиц, у которых может возникнуть тот же вопрос, если это поможет, потому что он даже поставляется со ссылкой на github (слава Abhimuralidharan @ Medium):

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

Установите свойство contentInset табличного представления:

tableView.contentInset = UIEdgeInsetsMake(300, 0, 0, 0)

Здесь я установил верхнее значение 300, которое является вычисленным числом, которое я установлю в качестве начальной нормальной высоты для просмотра изображения заголовка.Теперь, когда мы установили contentInset, кадр таблицы будет начинаться с (0,0), а первая ячейка - с (0,300).

Теперь создайте просмотр изображения с высотой 300 и добавьте его к текущемуПредставление над табличным представлением.

imageView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 300)
imageView.image = UIImage.init(named: “poster”)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
view.addSubview(imageView)

Затем добавьте следующий код в метод делегата scrollview scrollViewDidScroll, который вызывается при каждой прокрутке табличного представления.

func scrollViewDidScroll (_ scrollView: UIScrollView) {
    let y = 300 — (scrollView.contentOffset.y + 300)
    let height = min(max(y, 60), 400)
    imageView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: height)
}

Скомпилируйте и запустите код.Полный исходный код доступен в github .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...