【问题标题】:Reset nested uiscrollview zooms when scroll ends滚动结束时重置嵌套的滚动视图缩放
【发布时间】:2012-07-24 21:13:59
【问题描述】:

较大 uiscroll 中的嵌套 uiscroll 需要在缩放时在离开屏幕时重置缩放级别。当滚动结束但没有运气时,我正在尝试重置所有这些。有什么想法吗?

myScrollview = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];
myScrollview.pagingEnabled = YES;
myScrollview.scrollEnabled =YES;
myScrollview.clipsToBounds = NO;
myScrollview.indicatorStyle = UIScrollViewIndicatorStyleWhite;
myScrollview.showsHorizontalScrollIndicator = YES;
myScrollview.backgroundColor = [UIColor blackColor];
myScrollview.delegate = self;

NSInteger viewcount=4;
NSArray *images = [NSArray arrayWithObjects:[UIImage imageNamed:@"01.png"],[UIImage imageNamed:@"02.png"],[UIImage imageNamed:@"03.png"],[UIImage imageNamed:@"04.png"],nil];

for (int i = 0; i <viewcount; i++)
{
    CGFloat x = i * self.view.frame.size.width;

    subView = [[UIScrollView alloc]initWithFrame:CGRectMake(x, 0, self.view.frame.size.width, self.view.frame.size.height)];

    [subView setBackgroundColor:[UIColor blackColor]];
    [subView setCanCancelContentTouches:NO];
    subView.clipsToBounds = NO;    // default is NO, we want to restrict drawing within our scrollview
    subView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    aImageView = [[UIImageView alloc ] initWithImage:[images objectAtIndex:i]];
    [self.aImageView setTag:viewcount];
    [subView addSubview:aImageView];
    [subView setContentSize:CGSizeMake(aImageView.frame.size.width, subView.frame.size.height)];
    subView.minimumZoomScale = 1;
    subView.maximumZoomScale = 3;
    subView.delegate = self;
    [subView setScrollEnabled:YES];
    subView.contentSize = aImageView.frame.size;
    [myScrollview addSubview:subView];
}

myScrollview.contentSize = CGSizeMake(self.view.frame.size.width*viewcount,self.view.frame.size.height);


[self.view addSubview:myScrollview];

}

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
NSLog (@"test");
UIView * view = nil;
view = [subView viewWithTag:0];
//return view;
return [scrollView.subviews objectAtIndex:0];  

}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"Did scroll");
[self resetImageZoom];

}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { = NSLog(@"贴花结束了");

[self resetImageZoom];

}

-(void)resetImageZoom { NSLog(@"重置任意图片缩放");

for(UIView *view in [myScrollview subviews]) {
    //if([view isKindOfClass:[UIScrollView class]]) {
    //[(UIScrollView*)view setZoomScale:1.0 animated:NO];
    //}
    view.transform = CGAffineTransformIdentity;
}

}

【问题讨论】:

    标签: uiscrollview nested zooming reset


    【解决方案1】:

    做到了……

    -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    NSLog(@"Did end dece");
    for (UIView *view in scrollView.subviews) {
        if([view isKindOfClass:[UIScrollView class]]) {
            [(UIScrollView*)view setZoomScale:1.0 animated:NO];
        }
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-25
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多