写真が追加された状態で水平方向にスクロールする mainScrollView があり、mainScrollView の contentSize は写真の数に応じて設定されます。
最後までスクロールし、UIView でユーザーの表示情報をスワイプする効果を実現するために、overlayScrollView を mainScrollView のサブビューに追加しました。
overlayScrollView には、フレームの外側に配置された contentView が含まれています。
CGRect frame = self.mainScrollView.frame;
frame.origin.x = CGRectGetWidth(frame) * (count-1);
UIScrollView *overlayScrollView = [[UIScrollView alloc] initWithFrame:frame];
[self.mainScrollView addSubview:overlayScrollView];
// moves contentView one frame beyond
frame.origin.x = CGRectGetWidth(frame);
UIView *contentView = [[UIView alloc] initWithFrame:frame];
contentView.backgroundColor = [UIColor redColor];
[overlayScrollView addSubview:contentView];
overlayScrollView.contentSize = CGSizeMake(overlayScrollView.frame.size.width * 2, overlayScrollView.frame.size.height);
overlayScrollView.pagingEnabled = YES;
ネストされた UIScrollViews で SO を検索し、次の方法で mainScrollView の UIScrollView をサブクラス化しました。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
for (UIView *child in self.subviews){
if([child isMemberOfClass:[UIScrollView class]])
if(CGRectContainsPoint(child.frame, point))
return child;
}
return self;
}
しかし、うまくいきません。私のコードが間違っている可能性があります。hitTest は子 (overlayScrollView) を返しましたが、スクロールしませんでした。これをコーディングする方法について何か提案はありますか?