Как исправить заголовок и первую строку в UITableView - PullRequest
1 голос
/ 07 октября 2011

Я новичок в попытке сделать некоторые приложения, использующие цель c, поэтому у меня есть идея, использующая uitableview, но я не представляю, как я могу это получить.

Я пытаюсь сделать что-то похожее на электронную таблицу, где у вас есть фиксированный заголовок и первый столбец тоже

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

И, наконец, при прокрутке в горизонтальном направлении первая ячейка строки останется видимой и изменит заголовок в зависимости от того, как вы прокручиваете uitableview

Я надеюсь, что вы могли бы дать мне представление о том, как это получить, потому что я не представляю, как это сделать, и у меня нет большого опыта работы с этим языком программирования.

Спасибо!

Ответы [ 3 ]

1 голос
/ 07 октября 2011

В не сгруппированной таблице заголовки разделов «прилипают» вверху таблицы при прокрутке таблицы.Вы можете предоставить пользовательский UIView (или его подкласс) для заголовка раздела через метод делегата –tableView:viewForHeaderInSection:.Это представление заголовка может быть создано на лету программно или загружено из файла NIB.В любом случае, он может содержать все, что вы хотите, даже обновлять его во время работы приложения (при условии, что вы предоставили себе доступ через ivars или переменные класса к представлениям, содержащимся в представлении заголовка.) Если вы пойдете по этому пути, выхочу быть умным в распределении ресурсов, составляющих эту точку зрения, чтобы вы не выделяли постоянно новые ресурсы!Этот метод делегата можно вызывать часто, и при любом вызове, кроме первого, вы можете просто вернуть ранее созданное (но обновленное по мере необходимости) представление заголовка.

0 голосов
/ 06 апреля 2012

Я сделал это, добавив UIView, который имитирует первую ячейку в моей таблице.В моем случае я использую подкласс UITableViewCell, но это, возможно, не имеет значения.Обычно это представление скрыто с альфа-значением 0.

Если вы просматриваете контроллер, являющийся делегатом UITableView, то он также будет делегатом для унаследованного UIScrollView.Таким образом, в вашем контроллере представления вы можете реализовать scrollViewDidScroll.Когда contentOffset в scrollView является положительным, я устанавливаю альфа моего пользовательского представления на 1 (я также делаю некоторые небольшие настройки, чтобы убедиться, что есть идеальное соответствие), и когда contentOffset возвращается к 0 или отрицательному, я сбрасываю альфа обратно на 0.

0 голосов
/ 07 октября 2011

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

Мой подход заключается в использовании фиксированного UIView какого-то рода (возможно, UILabel и т. Д.) В UIViewController's перо в качестве заголовка / заблокированной ячейки, и добавьте UITableView под ним.Тогда вы не сможете использовать UITableViewController, но вам придется реализовать методы delegate и dataSource в вашем UIViewController и использовать UISwipeGestureRecognizer, чтобы выбрать жесты из tableView и обновить другие представления..

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