iOS- TableViewCell разширяване/свиване

Искам да създам TableView с клетки за разширяване/свиване и си помислих за 2 начина да постигна това:

  1. Играйте с heightForRowAtIndexPath

  2. Създайте 2 различни клетки с различен идентификатор и всеки път зареждайте правилната.

Искам клетката да се разширява/свива с анимация и потребителят може да разширява повече от една клетка.

Кой е по-добър?

Благодаря предварително!


person gran33    schedule 09.10.2013    source източник
comment
Какво ще се появи, след като потребителят разшири изглед на клетка? Това е точно същата клетка с нещо допълнително скрито по подразбиране и изразходвано при поискване? Или оформлението на клетката ще бъде напълно променено.   -  person Grzegorz Krukowski    schedule 09.10.2013


Отговори (3)


Зависи от вашата клетка, преди и след свиването и дали искате да я анимирате или не.

Настроики:

  1. Ако съдържанието е същото или с малки добавки и искате да го анимирате. Използвайте тази опция.

  2. Ако съдържанието се промени драматично, изберете тази опция. И не съм сигурен дали анимацията в този случай е лесна.

Успех, имам нужда от още помощ, уведомете ме! ;Д

person Albara    schedule 09.10.2013

Мисля, че искате това: https://github.com/seletz/CocoaTreeViewExample

Направих разширяем/свиващ се дървовиден изглед, използвайки същия код, който сега изглежда така в моето приложение:

въведете описание на изображението тук

person Vaibhav Saran    schedule 09.10.2013

Търсех нещо подобно, исках да мога да показвам и скривам contextMenu за клетка за изглед на таблица. Така че в крайна сметка използвах само една клетка както за разгънато, така и за свито състояние и имах „подизглед на контекстното меню“ (това исках за разширения вид) и актуализирах неговата рамка за анимацията. Номерът е, че когато искате да разширите/свиете клетката си с хубава анимация, по-добре използвайте beginUpdates и endUpdates вместо reloadData или reloadRowsAtIndexPaths:withRowAnimation: методи. Нещо такова:

// setContextMenuHidden:animated: updates frame and alpha for the context menu
// view (which is a subview of cell content view)
[cell setContextMenuHidden:NO animated:YES];

[self.tableView beginUpdates];
[self.tableView endUpdates];
person dariaa    schedule 09.10.2013