Ahoy!Создание многоразового UIView, подобного UITableViewCell
Я пытаюсь создать многоразовый UIView (по разным причинам), подобный реализации UITableViewCell, используемой в UITableViewController. Я хотел бы использовать многоразовое представление в UIScrollView, поэтому я знаю, что не пытаюсь достичь чего-то совершенно недостижимого.
Реализация по умолчанию это:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//declare cell identifier
static NSString *cellIdentifier = @"cell_identifier";
//dequeue cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
//check cell is valid
if(cell == nil)
{
//create a new cell
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
//
//return cell
return cell;
}
Исходя из этого, стоит отметить, что ячейка из очереди из UITableView. Если ячейка недействительна, создается новая ячейка. Мой вопрос в том, как эта ячейка затем снова «ставится в очередь» для повторного использования?
Моя текущая попытка реализации выглядит следующим образом:
- (TestScrollViewCell *)scrollView:(TestScrollView *)_scrollView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//declare cell identifier
static NSString *cellIdentifier = @"cell_identifier";
//dequeue cell
TestScrollViewCell *cell = (TestScrollViewCell *)[scrollView dequeueReusableCellWithIdentifier:cellIdentifier];
//check cell is valid
if(cell == nil)
{
//create a new cell
cell = [[TestScrollViewCell alloc] initWithFrame:CGRectZero];
}
//
//return cell
return cell;
}
Я имею в виду, что добавление NSMutableDictionary к моему TestScrollView хранить cellIdentifier и TestScrollViewCell (UIView), а затем выщипывание их обратно на основе словаря ключ был бы хорошим началом, но действительно ли это настоящая реализация «многоразовых» ячеек?
Проблема, которую я вижу, заключается в том, что я бы добавил UIView в ScrollView, который позиционируется на основе фрейма. Удаление представления в этом смысле не позволило бы мне добавить представление в вид прокрутки, не затрагивая первое представление (путем изменения фрейма), но верно ли это, как работают UITableViewCells, а также заголовки/нижние колонтитулы раздела?
Я искал this implementation, который, кажется, следит за тем же маршрутом, который я собирался реализовать, но я не продаюсь на 100%, это настоящая реализация многоразовых ячеек.
Неужели кому-то повезло с этим ранее? Я пытаюсь взять лидерство Apple на этом, но кроме UITableViewCell и MKAnnotationView (MapKit), для меня нет доступных реализаций для этого.
Любая помощь была бы принята с благодарностью.