Связанный здесь пример кода отлично работает и позволяет UIScrollView отображать изображения с разбиением по страницам и предварительным просмотром изображений до и после текущего изображения:
- http://blog.proculo.de/archives/180-Paging-enabled-UIScrollView-With-Previews.html
- https://github.com/alexrepty/Paging-Enabled-UIScrollView-With-Previews
Я пытаюсь инкапсулировать пример в один элемент управления, который можно использовать повторно. Итак, я создал PagingScrollView:
@interface PagingScrollView : UIView {
IBOutlet UIScrollView * scrollView;
}
@property (nonatomic,retain) IBOutlet UIScrollView * scrollView;
@end
с грязью простая реализация
- (void) awakeFromNib
{
[super awakeFromNib];
NSLog(@"awake from nib");
}
В PagingScrollView.xib я поместил представление, содержащее UIScrollView и ARScrollViewEnhancer точно так же, как в исходном xib ScrollViewPagingExampleViewController. Класс его владельца файла установлен на PagingScrollView, а его выход scrollView установлен на дочерний UIScrollView.
В ScrollViewPagingExampleViewController я просто объявляю:
IBOutlet PagingScrollView *pagingScrollView;
А в IB я перетаскиваю View, устанавливаю его класс в PagingScrollView и подключаю выход pagingScrollView к PagingScrollView.
В awakeFromNib свойство scrollView равно нулю. Я думаю, что, поскольку scrollView подключен к IB в том же nib, к этому моменту он будет доступен.
Как ни странно, в ScrollViewPagingExampleViewController.xib есть пустой выход с именем scrollView. Это может означать, что экземпляр PagingScrollView отличается от того, который определен в PagingScrollView.xib.
В результате я не могу заполнить UIScrollView фактическими дочерними представлениями. Что я здесь делаю неправильно?