简体   繁体   English

UIScrollView中的缩放问题

[英]Zooming problem in UIScrollView

I am using UIScrollView .In that scrollview I placing UIImageViews in serial order.Zooming is not working .This is my code 我正在使用UIScrollView 。在那个scrollview中,我按顺序放置UIImageViews不起作用。这是我的代码

- (void)viewDidLoad
{
    self.view.backgroundColor=[UIColor blackColor];

    NSArray *imageArray=[[NSArray alloc]initWithObjects:[UIImage imageNamed:@"test1.png"],[UIImage imageNamed:@"test2.png"],[UIImage imageNamed:@"test3.png"], nil];

    scrollView_=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width+20, self.view.frame.size.height)];
    [scrollView_ setCanCancelContentTouches:NO];
scrollView_.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView_.clipsToBounds = NO;
scrollView_.scrollEnabled = YES;
scrollView_.pagingEnabled = YES;
    scrollView_.delegate=self;
    scrollView_.showsHorizontalScrollIndicator=NO;
    scrollView_.showsVerticalScrollIndicator=NO;
    scrollView_.contentSize = CGSizeMake([imageArray count]*self.scrollView_.frame.size.width, self.scrollView_.frame.size.height); 

    [scrollView_ setMaximumZoomScale:3.0];
    [scrollView_ setMinimumZoomScale:1];
    [scrollView_ setZoomScale:1];
    [scrollView_ setBouncesZoom:YES];
    [scrollView_ setBounces:YES];

    for(int i=0;i<[imageArray count];i++)
    {
        UIImageView *imageView=[[UIImageView alloc]initWithImage:[imageArray objectAtIndex:i]];
        imageView.frame=CGRectMake((i*320)+(i*20), 0, 320, 480);
        [imageView_ setTag:i];
        [scrollView_ addSubview:imageView];

       [imageView release];
   }

   [self.view addSubview:scrollView_];


}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
   return [scrollView_ viewWithTag:page_];


}



- (void)scrollViewDidScroll:(UIScrollView *)_scrollView
{


    CGFloat pageWidth = _scrollView.frame.size.width;
    int page = floor((_scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    self.page_=page;



}

Thanks in advance.. 提前致谢..

Where have you set - 您在哪里设置-

[self.mainScroll setZoomScale:(float)];

I guess by default this is 1. So no zoom happens... 我想默认情况下是1。因此不会发生缩放...

Create a container view, and add imageViews into the container view, then use the container view as zoomview. 创建一个容器视图,并将imageViews添加到该容器视图中,然后将该容器视图用作zoomview。

- viewDidLoad {

   // ---
   self.containerView =[[[UIView alloc] init] autorelease];

   self.containerView.frame = CGRectMake(0, 0, [imageArray count]*self.scrollView_.frame.size.width, self.scrollView_.frame.size.height);
  [scrollView_ addSubView:self.containerView];

   for(int i=0;i<[imageArray count];i++)
    {
        UIImageView *imageView=[[UIImageView alloc]initWithImage:[imageArray objectAtIndex:i]];
        imageView.frame=CGRectMake((i*320)+(i*20), 0, 320, 480);
        [imageView_ setTag:i];
        [self.containerView addSubview:imageView];

       [imageView release];
   }


 // --
}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
   return self.containerView;


}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM