2010-02-27 7 views
4

J'ai une vue avec 4 zones de texte et un logo en haut - lorsque l'utilisateur entre des informations, le pavé de texte couvre certaines de ces commandes, comment faire défiler la vue pour que cette n'est pas un problème.Monotouch - make UIView scrollable

J'ai essayé d'ajouter la vue à un UIScrollView mais cela ne semble pas faire quoi que ce soit?

Répondre

1

J'ai inclus ci-dessous un résumé de la façon dont j'ai géré votre situation. Si je vous comprends bien, vous ne voulez pas avoir une vue défilante, vous voulez plutôt que la vue se déplace en conjonction avec le passage de et vers les champs pour atténuer et les obstacles visuels causés par le clavier.

Goodluck!

private void ScrollTheView(bool movedUp, float scrollamount, UIView ViewToMove) 
    { 
     //To invoke a views built-in animation behaviour, 
     //you create an animation block and 
     //set the duration of the move... 
     //Set the display scroll animation and duration... 
     UIView.BeginAnimations(string.Empty, System.IntPtr.Zero); 
     UIView.SetAnimationDuration(0.15); 

     //Get Display size... 
     RectangleF frame = ViewToMove.Frame; 

     if (movedUp) { 
      //If the view should be moved up, 
      //subtract the keyboard height from the display... 
      frame.Y -= scrollamount; 
     } 
     else { 
      //If the view shouldn't be moved up, restore it 
      //by adding the keyboard height back to the original... 
      frame.Y += scrollamount; 
     } 

     //Assign the new frame to the view... 
     ViewToMove.Frame = frame; 

     //Tell the view that your all done with setting 
     //the animation parameters, and it should 
     //start the animation... 
     UIView.CommitAnimations(); 

    } 
0

Vous devez définir plus de UIScrollView que de simplement ajouter des sous-vues. Configurez la propriété ContentSize correctement pour la taille complète des sous-vues de sorte que le scrollview connaisse le contenu plus grand que vous pouvez contrôler la position de défilement, le facteur de zoom et ainsi de suite. Il y a beaucoup d'échantillons sur iOS SDK, il suffit de consulter la documentation UIScrollView, la transformation en ObjectiveC de Monotouch est simple ou consultez le billet de blog au http://blog.touch4apps.com/home/iphone-monotouch-development/monotouch-infinite-loop-image-scroll-view où j'ai un échantillon avec des images auto-défilées dans UIScrollView.

0

quelque chose comme ça.

textBox.EditingDidBegin += delegate { 
    var offset = scrollView.contentOffset; 
    offset.Y -= 200; 
    scrollView.contentOffset = offset; 
}