2012-11-28 12 views
6

Tworzę jedną aplikację na iPhone'a, w której muszę wyświetlać kilka zdjęć wewnątrz UIScrollView, po lewej i prawej stronie będą dwa przyciski, które użytkownik może kliknąć, a na ekranie pojawi się następny lub poprzednie zdjęcie. Również na dole znajduje się jeden przycisk, kiedy użytkownik kliknie na ten przycisk, pokaże obraz, który wybrałeś w scrollview. Chciałbym wiedzieć, jak wyświetlić wiele obrazów w tym przewijanym widoku i podczas wybierania dolnego przycisku, jak znajdź, który obraz był wewnątrz przewijania.Jak wyświetlać wiele obrazów wewnątrz UIScrollView w iOS

+0

co zrobiliście do tej pory –

+0

Wydaje się, aby uzyskać bezpośredni kod? Czy to zrobiłeś i nad tym pracujesz? –

Odpowiedz

5

przykład z danielbeard.wordpress .com

W przypadku, gdy nazwy obrazów nie są tylko liczby:

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

    [scrollView setPagingEnabled:YES]; 
    [scrollView setAlwaysBounceVertical:NO]; 

    NSArray *imagesArray = [NSArray arrayWithObjects:@"img1.png", @"img2.png", @"img3.png", nil]; 

    for (int i = 0; i < [imagesArray count]; i++) 
    { 
     CGFloat xOrigin = i * scrollView.frame.size.width; 

     UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0, scrollView.frame.size.width, scrollView.frame.size.height)]; 
     [imageView setImage:[UIImage imageNamed:[imagesArray objectAtIndex:i]]]; 
     [imageView setContentMode:UIViewContentModeScaleAspectFit]; 

     [scrollView addSubview:imageView]; 
    } 

    [scrollView setContentSize:CGSizeMake(scrollView.frame.size.width * [imagesArray count], scrollView.frame.size.height)]; 
+0

Zrobiłem to i działa dobrze w trybie portretu. ale jak to zrobić w trybie poziomym, jeśli mam inną tablicę obrazów? plz dają pewne sugestie na ten temat. – Mak13

+0

Powinieneś wykryć, kiedy ekran jest obracany do trybu poziomego. Po wykryciu zmień nazwy obrazów w tablicy images, a następnie usuń stary scrollview i narysuj nowy z nową tablicą obrazów. – tnylee

+0

Zrobiłem tylko ten sam dzień. w każdym razie dzięki za odpowiedź. – Mak13

2

Apple.developerPhotoScroller demonstruje użycie wbudowanych UIScrollViews i CATiledLayer aby stworzyć bogate doświadczenie użytkownika do wyświetlania i Stronicowanie zdjęć, które mogą być indywidualnie cukrem i powiększony.

CATiledLayer służy do zwiększania wydajności stronicowania, panoramowania i powiększania obrazów o wysokiej rozdzielczości lub dużych zestawów zdjęć.

0

ty po prostu pierwszy utworzyć nowy widok na starcie i obrazu i przypisać tag wszystkie widoki jak 1000 lub 100 i przyrost o wartości znacznika, a następnie dodać ten pogląd do Scrollview i dwa przyciski do lewej i prawej ruchu i uczynić swoje działania wylotowe i dodać wszystkie widoki Scrollview sub do zmienny tablicy jak to

 indexStart=100; 
UIView *AddView=[[UIView alloc]initWithFrame:CGRectMake(55, 0, 100, 100)]; 

       AddView.tag=indexStart; 
       btnTap.tag=indexStart; 

       UIImageView *imgview=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; 



       [AddView addSubview:imgview]; 

       imgview.image=image; 
       imgview.tag=1000; 
       [ScrollView addSubview:AddView]; 
       [imgArray addObject:AddView]; 

użyć pętli to zrobić i na lewym i prawym przyciskiem użyć tego kod iw tym kodzie editImgeView jest widokiem obrazu i nbetween lewy i prawy przycisk gdzie pokazać obraz po prostu prosty indexstart ++ lub - jeśli użytkownik wybrać przycisk prawą lub lewą

for (int index = 0; index < [imgAddArrayAfter count]; index ++) { 
     NSLog(@"index %d",index); 
     UIView *vc=[imgArray objectAtIndex:index]; 
     NSLog(@"view tag %d",vc.tag); 
     if(vc.tag == indexStart) 
     { 

      UIImageView *modalView=(UIImageView *) [vc viewWithTag:1000]; 
      editImgeView.image=modalView.image; 
     } 
    } 

Mam nadzieję, że rozumiesz ;-)

0
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    scrollView.contentSize = CGSizeMake(320, 465); 

    [scrollView setScrollEnabled:YES]; 
    [scrollView setPagingEnabled:YES]; 
    [scrollView setAlwaysBounceVertical:NO]; 
    [self.view addSubview:scrollView]; 

    NSMutableArray *arrImage = [NSMutableArray arrayWithObjects:@"food1.jpeg", @"food2.jpeg", @"food3.jpeg",@"food4.jpeg", @"food5.jpeg", @"food6.jpeg",@"food7.jpeg", @"food8.jpeg", @"foo9.jpeg",@"food10.jpeg", @"food11.jpeg", @"food12.jpeg",@"food13.jpeg", @"food14.jpeg", @"food15.jpeg", @"food16.jpeg", nil]; 

    for (int i = 0; i < [arrImage count]; i++) 
    { 
     CGFloat xOrigin = i * scrollView.frame.size.width; 

     UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0, scrollView.frame.size.width, scrollView.frame.size.height)]; 
     [imageView setImage:[UIImage imageNamed:[arrImage objectAtIndex:i]]]; 
     [imageView setContentMode:UIViewContentModeScaleAspectFit]; 

     [scrollView addSubview:imageView]; 
    } 

    [scrollView setContentSize:CGSizeMake(scrollView.frame.size.width * [arrImage count], scrollView.frame.size.height)]; 
} 
Powiązane problemy