UIScrollView ne pas faire défiler après la mise à jour iOS7 / xcode 5
J'ai une appli qui dans xcode 4.5 et ios 6.1 a fonctionné parfaitement bien lors du défilement.
Cependant, après le téléchargement de xcode 5 et iOS 7 mon de défilement des vues ne fonctionne plus.???
Voici mon .h fichier:
#import <UIKit/UIKit.h>
@interface GrillretterViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIScrollView *grillretterScroller;
@property (assign) CGPoint rememberContentOffset;
@end
Et voici mon .m fichier:
#import "GrillretterViewController.h"
@interface GrillretterViewController ()
@end
@implementation GrillretterViewController
@synthesize grillretterScroller, rememberContentOffset;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
//Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[grillretterScroller setScrollEnabled:YES];
//Do any additional setup after loading the view.
}
- (void) viewDidAppear:(BOOL)animated {
[grillretterScroller setContentSize:CGSizeMake(300, 915)];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:YES];
self.grillretterScroller.contentOffset = CGPointMake(0, 0);
}
- (void)viewWillDisappear:(BOOL)animated {
self.rememberContentOffset = self.grillretterScroller.contentOffset;
[super viewWillDisappear:animated];
}
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
self.grillretterScroller.contentOffset = CGPointMake(0, self.rememberContentOffset.y);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
//Dispose of any resources that can be recreated.
}
@end
S'il vous PLAÎT aider! Je suis coincé!
En ce qui concerne meilleur!
- J'utilise les storyboards et qu'entendez-vous par vous vérifié fichier xib? Dans la vue j'ai activé le défilement: oui:)
- eh bien, pour savoir si la ScrollView est connecté à la IBOutlet
- Tout est connecté, je n'ai pas changer les connexions ou le code après l'ouverture du projet dans xcode 5.
- Vous devriez faire votre super appels dans l'ensemble de ces méthodes. Aussi, assurez-vous que l'interaction de l'utilisateur est activée.
- J'ai juste ajouté le super appels dans la dernière méthode. Mais avec pas de chance 🙁 Où puis-je vérifier si l'interaction de l'utilisateur est activée?
- J'ai tout compris! Je l'avais Mise en page Automatique Activé, ce qui a causé la scrollviews de ne pas défiler. Après la désactivation de la mise en page automatique, tout a fonctionné à nouveau 🙂
Vous devez vous connecter pour publier un commentaire.
J'ai résolu ce problème en décochant "Utiliser la mise en forme automatique" dans le Fichier de panneau Inspecteur de la vue principale dans le Défilement de la Vue.
Si vous voulez garder la " mise en forme automatique activé, essayez de l'Éditeur -> Filtrer mise en page automatique Questions -> Ajouter Manquant Contraintes. La contrainte de clé semble être un " Espace Inférieur à: Superview et dans mon cas était -300, donnant 300 de défilement de l'espace sur le bas de la vue.
Comme mentionné par user2394787:
Sélectionnez votre point de vue contrôleur de la scrollview ensuite, allez à
Cela permettra de le faire fonctionner.
J'ai essayé de voter la réponse ci-dessus mais n'ont pas assez de rep.
J'ai résolu en allant à
Éditeur > Résoudre les Problèmes de mise en page automatique > Ajouter Manquant Contraintes en-Vue-Contrôleur
Espère que cette aide.
Je viens de mettre "Espace Vertical" automatique de la valeur de la constante. Peut-être qu'il l'aide dans certains cas.
et de le fixer dans les Attributs de l'inspecteur de
J'espère que ça aide. Thx.
Je ne suis pas sûr si cela va fonctionner
Je n'ai pas de hauteur fixe j'ai donc mis le contentsize de la scrollview dans le code en fonction de mon étiquette à l'intérieur de la scrollview
Avec mise en page automatique est activée, assurez-vous que l'Espacement Vertical (@"V:|-[sous-vue]-|") est appliquée entre les UIScrollView et de ses sous-vue. Si votre scrollView est pour le défilement horizontal, appliquer l'Espacement Horizontal (@"H:|-[sous-vue]-|").
J'ai eu le même problème après le développement d'une application pour iOS8, les tests sur iOS7 par la suite.
Bien que j'avais essayé l'établissement de certaines options sur le défilement de la vue tels que:
La solution qui a fonctionné pour moi était d'aller dans la table de montage séquentiel fichier et assurez-vous que vous avez des contraintes pour tous les points de vue au sein de défilement de la vue. Le défilement de la vue de la taille du contenu est calculé par les contraintes de chaque sous-vue dans le défilement de l'affichage, de sorte que dans mon cas, j'ai eu une UIView et UITableView. Après l'ajout de contraintes pour UIView (en haut, en conduisant, en fin de chaîne, hauteur), et UITableView (espacement vertical de UIView, leader, suiveur, en bas), le défilement de la vue calculé la taille du contenu et de commencer à fonctionner.
Alors que la désactivation Automatique de la Mise en page fonctionne, ce n'est pas une solution idéale pour tout le monde. Il suffit de jouer autour avec Storyboard et définir les contraintes pour l'ensemble des sous-vues dans le défilement de la vue, de sorte qu'une ligne verticale de contraintes sont définies, à partir du haut de défilement de la vue vers le bas.