2011-05-03 48 views
1

你好,我已經使用實施photoslide表示,蘋果的滾動example.Below是代碼:如何在iphone中使用uiscrollview在uiimageview中捏出捏?

- (void)viewDidLoad { 

    appDelegate=[(FoodAppDelegate *)[UIApplicationsharedApplication]delegate]; 
    kNumImages=[parray count]; 
    self.view.backgroundColor=[UIColor viewFlipsideBackgroundColor]; 
    [scrollView1 setBackgroundColor:[UIColor blackColor]]; 
    [scrollView1 setCanCancelContentTouches:NO]; 
    scrollView1.indicatorStyle=UIScrollViewIndicatorStyleWhite; 
    scrollView1.clipsToBounds=YES; 
    scrollView1.scrollEnabled=YES; 
     scrollView1.pagingEnabled=YES; 
    scrollView1.minimumZoomScale=0.5; 
    scrollView1.delegate=self; 
    scrollView1.maximumZoomScale=6.0; 
    scrollView1.bouncesZoom=YES; 
    NSLog(@"view did load called"); 
    NSUInteger i; 
    for(i=0;i<kNumImages;i++) 
    { 
     NSLog(@"for loop of view did load called"); 
     NSURL *url=[NSURL URLWithString:[parray objectAtIndex:i]]; 
     NSLog(@"url object at index %i is %@",i,url); 
     UIImage *image=[UIImage imageWithData:[NSData dataWithContentsOfURL:url]]; 
     imageView=[[UIImageView alloc] initWithImage:image]; 
     CGRect rect=imageView.frame; 
     rect.size.height=kScrollObjHeight; 
     rect.size.width=kScrollObjWidth; 
     imageView.frame=rect; 
     imageView.tag=i+1; 
     [scrollView1 addSubview:imageView]; 

    } 
    [scrollView1 setContentSize:CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)]; 
    [self layoutScrollImages]; 
    [super viewDidLoad]; 
} 



-(void)layoutScrollImages 
{ 
    int c=appDelegate.selectedphoto-1; 
    kNumImages=[parray count]; 
    view=nil; 
    NSArray *subviews=[scrollView1 subviews]; 
    CGFloat curXLoc=0; 
    for(view in subviews) 
    { 
     if([view isKindOfClass:[UIImageView class]] && view.tag>0) 
     { 
      CGRect frame=view.frame; 
      frame.origin=CGPointMake(curXLoc, 0); 
      view.frame=frame; 
      curXLoc+=(kScrollObjWidth); 
     }} 
    [scrollView1 setContentSize:CGSizeMake((kNumImages *kScrollObjWidth),200)]; 
    CGPoint lastFrame = CGPointMake((c* kScrollObjWidth), 0.0f); 
    [scrollView1 setContentOffset:lastFrame]; 
    scrollView1.showsHorizontalScrollIndicator=NO; 
    scrollView1.showsVerticalScrollIndicator=NO; 

} 

現在我要實現放大縮小我out.How可以做任何示例代碼或例子?

回答

0

在uiscrollview中創建一個帶有uiimageview的uiscrollview。外部uiscrollview水平滾動,內部設置爲捏和縮放。當內部卷軸完全縮小或位於邊緣時,IOS實際上足夠聰明,可以與父級uiscrollview進行互動。

許多例子都在那裏創建捏/縮放應用程序uiscrollview。

scrollView=[[UIScrollView alloc] initWithFrame:[BFCoords sharedBFCoords].APP_RECT]; 
scrollView.scrollEnabled=YES; 
scrollView.maximumZoomScale=1; 
scrollView.minimumZoomScale=.5; 
scrollView.delegate=self; 
scrollView.clipsToBounds=YES; 



contentView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, [BFCoords sharedBFCoords].APP_WIDTH*2, [BFCoords sharedBFCoords].APP_HEIGHT*2)]; 
scrollView.contentSize=CGSizeMake([BFCoords sharedBFCoords].APP_WIDTH*2, [BFCoords sharedBFCoords].APP_HEIGHT*2); 

[scrollView addSubview:contentView]; 

[self addSubview:scrollView]; 

scrollView.zoomScale=.5; 
[scrollView setBackgroundColor:[UIColor blueColor]]; 
self.hidden=NO; 
self.alpha=1; 

[contentView release]; 
[scrollView release]; 

做出滾動視圖縮放不要忘記執行UIScrollViewDelegate

,並添加:

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)inScroll { 
return contentView;}