Это интересный вопрос. Конечно, я бы сказал, начните с UIScrollView и установите размер контента больше, чем размер экрана, именно то, насколько велик ваш выбор.
Затем вы захотите сделать какую-то реализацию, которая эффективно выяснит, какие ячейки на экране. На вашем месте я бы сделал нечто похожее на UITableView, то есть создал бы пользовательский объект, который отслеживает, какие индексы должны быть на экране, основываясь на смещении представления прокрутки.
Далее вам понадобится этот пользовательский объект, чтобы прямо или косвенно заставить видимые ячейки отображать себя на экране, когда они видны, и удалять их из суперпредставления, когда они не видны. Я также рекомендовал бы повторно использовать представления, которые находятся за кадром.
Это довольно сложная вещь, которую вы пытаетесь сделать, поэтому убедитесь, что вы очень организованы и не бойтесь создать несколько новых пользовательских объектов для выполнения определенных задач.
Пример файла интерфейса:
@protocol doubleTableViewDelegate
-(NSInteger)heightForRow:(NSInteger)row;
-(NSInteger)widthForCol:(NSInteger)col;
-(NSInteger)numberOfRows:(NSInteger)rows;
-(NSInteger)numberOfCols:(NSInteger)cols;
-(UIView *)cellForRow:(NSInteger)row col:(NSInteger)col; //get the custom table view to store and dequeue these, i.e. store them in an NSSet when they go offscreen, and give them back when a certain function is called.
//There's probably a few functions missing here still.
@end
@interface doubleTableView: UIScrollView {
id<doubleTableViewDelegate> infoDelegate;
}
//your functions to show and remove cells as needed
@end
Вам нужно будет поработать над остальными, но продолжайте обновлять эту страницу, и я постараюсь помочь.
Удачи в этом, дайте мне знать, как это происходит.