J'ai le code suivant pour créer une vue et le mettre dans ScrollView pour permettre la pagination de
Le code fonctionne bien, mais ce que je ne pouvais pas faire est de charger des vues à partir d'un fichier NIB
en d'autres termes
Je veux utiliser "initwithnibname" au lieu de "initwithframe"? P> merci beaucoup p> p> p>
3 Réponses :
Essayez quelque chose comme ceci (adapté de "The iPhone Développeurs Cookbook", p. 174):
UIView *newView = [[[NSBundle mainBundle] loadNibNamed:@"yournib" owner:self options:nil] lastObject];
Great John, mais j'ai besoin de spécifier la position de la nouvelle vision parce que je l'ajoute à une envoi
A commenté quelque chose @john n manqué mais j'ai manqué qu'il ne l'avait pas manqué. Alors peu importe!
Je pense que ce qui vous manque, c'est que vous pouvez définir le cadre de votre nouvel UIView après avoir chargé la nib. Charge / Init Time n'est pas votre seul tir à cela. Je brise également la fonction de charge dans ses pièces, dans le code ci-dessous, vous pouvez donc voir plus facilement ce qui se passe.
Observer: P>
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"yournib" owner:self options:nil]; //I'm assuming here that your nib's top level contains only the view //you want, so it's the only item in the array. UIView *myView = [nibContents objectAtIndex:0]; myView.frame = CGRectMake(0,0,300,400); //or whatever coordinates you need [scrollview addSubview:myView];
C'est ce que je parle de :) Merci Dan, votre solution fonctionne parfaitement, oui j'ai changé les positions des vues sur la vision de ScrollView avec quelque chose comme "ScrollView.frame.size.width * page" pour le coordinateur X Merci encore, Tu as fait ma journée :)
Je sais que c'est un ancien poste, mais je voulais créer un fichier UIView comme fichier séparé et ajouter un XIB afin que je puisse donc l'utiliser à plusieurs endroits de mon application (presque comme l'utiliser comme une cellule de vue de table personnalisée). Et je ne pouvais pas l'avoir bien juste, mais ce post m'a aidé à arriver au résultat que je voulais.
Alors, si quelqu'un veut le faire de la même manière, c'est ce que j'ai fait: P>
Ajoutez ceci au code d'initialisation de votre fichier .m de UIVIEW: p> puis dans l'éditeur d'interface Builder / XIB, vous devez affecter la classe que vous avez créée pour l'UIView afin que vous puissiez ajouter Iboutlets. P> J'espère que cela aide quelqu'un de sortir, parce que cela m'a pris un peu! P> p>
Pas besoin de faire un nouveau CGRRECT, vous pouvez simplement faire self.frame = cadre code>
Fantastique! Grande solution!
Si vous deviez le faire de cette façon (et non, mais si vous étiez), vous voudrez vous souvenir de la
[NEWVIEW version] code> Après l'avoir ajouté à
ScrollView code >. Votre ScrollView conservera la vue quand elle est ajoutée, de sorte que cela ne vous appartient plus vraiment.