0

私はメインを持っていますUIScrollView

mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 440)];
mainScrollView.pagingEnabled = YES;
imageScrollView.contentSize = CGSizeMake(320 * [myImage count], 440);

、多くの sub を含みUIScrollView、各 subUIScrollViewが含まれていますUIImageView

for (int i = 0; i < [myImage count]; i++)
{
    imageView = [[UIImageView alloc] init];
    [imageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

    NSString *strimage = [myImage objectAtIndex:i];
    NSURL *imageUrl = [NSURL URLWithString:strimage];

    [imageView setImageWithURL:imageUrl placeholderImage:[UIImage imageNamed:@"Placeholder"]];

    imageView.frame = CGRectMake(0, 0, 320, 440);

    subScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(320 * i, 0, 320, 440)];
    subScrollView.contentSize =
    CGSizeMake(imageView.frame.size.width, imageView.frame.size.height);
    subScrollView.pagingEnabled = YES;
    subScrollView.showsHorizontalScrollIndicator = NO;
    subScrollView.showsVerticalScrollIndicator = NO;
    subScrollView.delegate = self;
    subScrollView.bouncesZoom = YES;
    subScrollView.clipsToBounds = YES;

    subScrollView.maximumZoomScale = 3.0;
    subScrollView.minimumZoomScale = 1.0;
    subScrollView.zoomScale = 1.0;

    [mainScrollView addSubview:subScrollView];
    [subScrollView addSubview:imageView];
}

、そして私は実装します

#pragma mark UIScrollViewDelegate methods

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return imageView;
}

問題は、ズームインするときですUIImageView。3つのサブがあると仮定しますUIScrollView。最後のサブは正常にUIScrollViewズームできますが、他の2つはズームインすると、代わりにサブをズームし、最後のサブもズームします。何か悪いことをしますか?UIImageViewUIScrollViewUIImageViewUIScrollView

viewForZoomingInScrollView では、最後にのみズームしていると思われますUIImageView(last sub UIScrollView)。

前もって感謝します :)

4

1 に答える 1

1

UIImageView最後に、特定のインをズームインするときに更新する必要があるだけですUIImageView - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 次のように:

#pragma mark -
#pragma mark UIScrollViewDelegate methods

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    for (UIImageView *iv in [scrollView subviews]) {
        imageView = iv;
        break;
    }

    return imageView;
}

この時点で私のように苦労している誰かの助けになることを願っているので、時間を無駄にする必要はありません:)。

于 2012-10-15T08:06:18.970 に答える