Ahoy!Tworzenie wielokrotnego użytku UIView podobną do UITableViewCell
Próbuję utworzyć wielokrotnego użytku UIView (z różnych powodów), podobny do stosowanego w realizacji UITableViewCell UITableViewController. Chciałbym użyć widoku wielokrotnego użytku w UIScrollView, więc wiem, że nie próbuję osiągnąć czegoś, co jest całkowicie nieosiągalne.
Domyślna implementacja tego jest:
- (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;
}
Z tego, warto zauważyć, że komórka jest rozkolejkowywana z UITableView. Jeśli komórka jest nieważna, tworzona jest nowa komórka. Moje pytanie brzmi, w jaki sposób ta komórka staje się później "w kolejce" do ponownego użycia?
Mój obecny usiłował realizacja wygląda następująco:
- (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;
}
myślę, że dodanie NSMutableDictionary do mojego TestScrollView przechowywać cellIdentifier i TestScrollViewCell (UIView), a następnie wyrywanie ich z powrotem na podstawie słownika klucz byłby dobrym początkiem, ale czy to naprawdę jest prawdziwa implementacja komórek "wielokrotnego użytku"?
Problem widzę jest to, że chciałbym być następnie dodanie UIView do Scrollview który umieszczony jest w oparciu o ramy. Odznaczenie widoku w tym sensie nie pozwoliłoby mi dodać widoku do widoku przewijania bez wpływu na pierwszy widok (przez modyfikację ramki), ale z pewnością tak działają UITableViewCells, a także nagłówki/stopki sekcji?
Patrzyłem na this implementation, która wydaje się podążać tą samą trasą, którą zamierzałem wprowadzić, ale nie jestem w 100% sprzedana, że jest to prawdziwa implementacja komórek wielokrotnego użytku.
Czy ktoś miał szczęścia z tym wcześniej? Próbuję zabrać Apple'a na prowadzenie, ale poza UITableViewCell i MKAnnotationView (MapKit) nie ma dla mnie dostępnych dostępnych implementacji tego.
Każda pomoc zostanie bardzo doceniona.