此处链接的示例代码效果很好,并允许 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 的视图,与原始 ScrollViewPagingExampleViewController xib 完全相同。它的 File's Owner 的类设置为 PagingScrollView,它的 scrollView 出口设置为子 UIScrollView。
在 ScrollViewPagingExampleViewController 中,我简单地声明:
IBOutlet PagingScrollView *pagingScrollView;
在 IB 中,我拖动一个 View,将其类设置为 PagingScrollView,并将其 pagingScrollView 出口连接到 PagingScrollView。
在 awakeFromNib 中,scrollView 属性为 nil。我认为由于 scrollView 在同一个 nib 中连接到 IB 中,因此此时可以使用它。
令人困惑的是,在 ScrollViewPagingExampleViewController.xib 中,有一个名为 scrollView 的空插座。这可能表明 PagingScrollView 的实例与 PagingScrollView.xib 中定义的实例不同。
结果,我无法使用实际的子视图填充 UIScrollView。我在这里做错了什么?