2009-05-09 2 views
12

UITableView - очень мощный класс, обеспечивающий множество навигационных и предпочтений на iPhone. Многие люди придумали полезный UITableView советы, приемы и образцы:Мои любимые трюки UITableView/UITableViewCell?

  • различных способов использования Interface Builder для ячеек таблицы
  • как создавать ячейки предпочтения стиля
  • обеспечивает хорошую скорость прокрутки
  • и т.д. .

Пожалуйста, напишите ваши любимые советы по использованию UITableView, один совет на вопрос. Я начну с публикации тех, которые я нашел в Stack Overflow и те из моих закладок.

ответ

0

Реализация таблиц сгруппированных в стиле предпочтений: Three20 библиотека (извлеченная из приложения iPhone для iPhone) имеет набор готовых ячеек, которые содержат различные элементы управления.

(Не уверен, что вы хотите использовать их, однако, три20 немного «не придуманы здесь» и пытается подклассифицировать и расширять все, поэтому добавление этого добавляет в ваш проект довольно много беспорядка. Но, по крайней мере, вы можете использовать его в качестве примера.)

+2

Я также чувствую то же самое о Three20. Я не очень хочу интегрировать его прямо в мои проекты, поскольку они пытаются изобретать велосипед каждый раз, когда что-то не работает так, как они хотят. Хотя, должен признать, что у парня за ним есть несколько серьезных какао-моджо, и вы можете определенно вдохновиться некоторыми его трюками. –

+0

Да, я использовал его для просмотра большого пальца, но через некоторое время его повторно выполнил. К большому количеству неприятностей для такого простого использования. Это, скорее, библиотека. –

9

Вы когда-нибудь задумывались над тем, что делает UITableViewController?

  • В viewWillAppear, оно отменяет любые выбранные строки, с animated:YES.

    Это, кстати, поэтому, когда вы перемещаетесь в UINavigationController, строка, которую вы ранее касались, красиво отменена с помощью анимации. Когда вы переместили новый контроллер представления в UINavigationController, вы оставили выбранную строку. Когда вы поместите его и вернитесь к представлению таблицы, viewWillAppear запускает и отменяет выделение строки. UINavigationController даже не знает об этом.

  • В представленииWillAppear он вызывает reloadData, если в представлении таблицы нет строк.

  • В видуDidAppear, он вызывает flashScrollIndicators.

  • Он контролирует клавиатуру, появляющуюся и исчезающую, и соответствующим образом изменяет размер табличного представления, чтобы при нажатии текстового поля в виде таблицы он остается видимым после появления клавиатуры.

Если вам не требуется контроль над клавиатурой, довольно легко сделать все остальное самостоятельно, если вам нужно.

+0

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

+0

@Corey Hm. UITableViewController содержит код, который делает это, я предположил, что он работает только из коробки. Посмотрите, как это произошло, спасибо. –

+2

Трюк заключается в вызове super при переопределении этих методов. –

0

Как использовать интерфейс Builder для создания своих ячеек? Найти ответы на отдельное обсуждение переполнения стека: «Using Interface Builder for UITableView’s»

2

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

Вы можете использовать инструмент Performance Core Animation Performance Tool, чтобы визуально видеть, сколько прозрачности вы делаете в ячейке, - вы должны работать на устройстве, чтобы использовать этот инструмент.

3

Если вы хотите удалить разделительные линии, используйте:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];