0

写真が追加された状態で水平方向にスクロールする 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) を返しましたが、スクロールしませんでした。これをコーディングする方法について何か提案はありますか?

4

0 に答える 0