2010-06-10 7 views
4

Je fais de la bande dessinée numérique maintenant. Mon application a une radiomessagerie horizontale sans zoom. Mais lorsque vous effectuez un zoom, la hauteur de l'image est supérieure à la hauteur de l'écran. L'application a donc une pagination verticale.Comment faire un paging horizontal sans pagination verticale dans UIScrollView

Mais je n'ai pas besoin de pagination verticale. Je veux faire une recherche horizontale sans pagination verticale pendant zooiming.

S'il vous plaît, enseignez-moi.

+0

peut être fait avec une vue de défilement: http://stackoverflow.com/questions/10478586/uiscrollview-paging-in-single-direction/10480071#10480071 –

Répondre

-1

Il n'y a techniquement pas de pagination verticale, seulement horizontale à partir de maintenant pour l'API standard. Haut/bas défile, et pagination gauche/droite est un peu différent.

Vous devriez pouvoir désactiver le défilement vertical dans Interface Builder après avoir sélectionné uiscrollview et modifié ses propriétés dans la fenêtre de l'inspecteur.

-1

Vous pouvez définir dynamiquement le pagingEnabled sur NO lorsque l'utilisateur effectue un zoom avant, puis le redéfinir sur YES lorsqu'il effectue un zoom arrière.

Consultez la page docs pour savoir comment détecter le zoom dans UIScrollViewDelegate.

+0

Merci. Mais ce n'est pas suffisant, car j'ai besoin d'une pagination horizontale pendant le zoom. Je veux seulement désactiver la pagination de la verticale. Mais je savais que je ne peux pas désactiver la pagination de la verticale. Alors quelqu'un me dit des conseils. Il a dit qu'il est capable de désactiver la pagination verticale en utilisant 2 scrollView. Un est des pages entières avec pagingEnabled = NO; Un autre est une seule page avec pagingEnabled = YES; Mais mon échantillon ne fonctionne pas correctement. Quelqu'un s'il vous plaît aidez-moi. – kyoheialfaromeo2010

13

C'est vraiment simple. Comme votre ami l'a suggéré, vous aurez besoin d'AU MOINS deux UIScrollView. Vous aurez besoin d'un UIScrollView pour l'horizontale (c'est-à-dire pagination), et vous aurez besoin d'un UIScrollView pour chaque page. Les points clés sont (nous allons les nommer scrollHorizontal et scrollVertical):

  • scrollHorizontal.frame.height doit être égal scrollHorizontal.contentSize.height (sinon, vous finirez avec pagination verticale)
  • scrollVertical: d'abord, vous aurez un de cela pour chaque page . La largeur du cadre et contentSize.width doit correspondre et donner un sens à la règle. la largeur d'une page (dans votre scrollHorizontal). Vous devriez bien sûr avoir la hauteur du cadre ne dépasse pas scrollHorizontal.contentSize.height.

Exemple de code:

 

UIScrollView scrollHorizontal = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

scrollHorizontal.pagingEnabled = YES; 
scrollHorizontal.directionalLockEnabled = YES; // not needed but helpful 

// Now let's create each page 

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

[scrollPage1 addSubview:theContentViewForPage1]; 

scrollPage1.contentSize = CGSizeMake(self.view.bounds.size.width, theContentViewForPage1.bounds.size.height); 

// Add page to scrollHorizontal 

[scrollHorizontal addSubview:scrollPage1]; 
[scrollPage1 release]; 

//...add more pages (REMEMBER to set the scroll view's frame.origin.x accordingly for each additional page) 

// Set the scrollHoriztonal content size 
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width*NUMBER_OF_PAGES, self.view.bounds.size.height); 

// Now add the scrollview to self.view; or even self.view = scrollHorizontal, etc. 

+1

Parfait réponse homme. Merci beaucoup. – jakeboxer

+0

J'ai essayé de trouver quelque chose de similaire et cette réponse l'a fait. Merci beaucoup – Andrew