J'ai créé un UIViewController, qui génère par programme un UIScrollView. Tout va bien, mais quand je tourne le périphérique, le UIScollView devrait redimensionner ainsi il prend la largeur complète de ma vue.Autoresize UIScrollView
Y at-il un moyen de le faire sans avoir à reconstruire l'UIScrollView complet?
Merci beaucoup! Sebastian
Ceci est appelé dans mon viewDidLoad:
-(void)buildmyScroller {
myScroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 800, 768, 100)];
//...adding some subviews to myScroller
thumbScroller.contentSize = CGSizeMake(3000, 100);
[[self view] addSubview:myScroller];
}
Puis j'ai essayé de redimensionner myScroller avec cela, quand je setFrame, je l'ai dit myScroller ne répondrait pas à elle ...:
-(void)changemyScroller {
UIInterfaceOrientation interfaceOrientation = self.interfaceOrientation;
if (interfaceOrientation == UIInterfaceOrientationPortrait) {
[thumbScroller setFrame:CGRectMake(0, 805, 768, 150)];
}
else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
thumbScroller.frame = CGRectMake(0, 805, 768, 150);
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft){
thumbScroller.frame = CGRectMake(0, 549, 1024, 150);
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight){
thumbScroller.frame = CGRectMake(0, 549, 1024, 150);
}
}
Et appelé la méthode dans didAnimateFirstHalf ... parce que je ne suis pas shure où d'autre pour l'appeler.
Merci encore beaucoup!
Merci beaucoup! La solution peut être si facile :) – wolfrevo
Encore une question, mon défilement correspond maintenant à ma mise en page et le contenu a aussi la bonne taille, mais quand je commence en paysage (scrollwidth 1024px) et fais pivoter zu portrait (scrollwidth 768px) je ne peux pas utiliser le scroller. Quand je commence en mode portrait et que je fais une rotation en paysage, je ne peux interagir que dans le premier 768px, donc à droite je ne peux pas interagir avec le défilement. quand je vais à une autre vue, je reviens à la vue qui contient la scrollview, je peux l'utiliser. Il n'est donc pas possible de changer le scrollView lorsqu'il est affiché? Ou où devrais-je le changer? THX. – wolfrevo
Salut je suppose que vous configurez votre UIScrollView dans loadView ou viewDidLoad? Peut-être même init? (Cela signifie qu'il n'est mis à jour que lorsque ces fonctions sont appelées). Essayez de mettre l'instanciation de UIScrollView dans viewDidLoad, mais la configuration, la modification du contenu et l'orientation dans une fonction distincte. Vous pouvez maintenant appeler cette fonction à la fois depuis viewWillAppear et ShouldAutoRotate ... donc la configuration se produit à la fois lorsque vous le chargez la première fois, lorsque vous faites une rotation et quand vous passez à une autre vue et inversement. – RickiG