ここにリンクされているサンプル コードはうまく機能し、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 では、元の ScrollViewPagingExampleViewController xib とまったく同じように、UIScrollView と ARScrollViewEnhancer を含むビューを配置しました。そのファイルの所有者のクラスは PagingScrollView に設定され、その scrollView アウトレットは子 UIScrollView に設定されます。
ScrollViewPagingExampleViewController では、次のように宣言するだけです。
IBOutlet PagingScrollView *pagingScrollView;
IB では、View をドラッグし、そのクラスを PagingScrollView に設定し、その pagingScrollView アウトレットを PagingScrollView に接続します。
awakeFromNib では、scrollView プロパティは nil です。scrollView は同じ nib の IB に接続されているため、この時点で利用可能になると思います。
紛らわしいことに、ScrollViewPagingExampleViewController.xib には、scrollView という名前の空のアウトレットがあります。これは、PagingScrollView.xib で定義されているものとは異なる PagingScrollView のインスタンスがあることを示している可能性があります。
その結果、UIScrollView に実際の子ビューを設定できません。ここで何が間違っていますか?