2014-05-16 8 views
0

Je sais qu'il y a des dizaines de questions similaires à propos de scrollview mais j'ai tout essayé, Scrollview ne défile pas.UIScrollview ne défile pas

J'ai d'abord créé un uiviewcontroller avec un fichier xib, et l'ai défini pour le formater et l'agencer en taille et ajouté un scrollview sur la vue.

enter image description here

ensuite ajouté comme un childviewcontroller à un autre contrôleur de vue.

-(void)scrollViewSetup 
{ 
    if (!_scrollView) { 
     _scrollView=[[UIView alloc] initWithFrame:CGRectMake(0,200,self.scrollView.frame.size.width,200)]; 
     [self.view addSubview:_scrollView]; 

     ScrollView *displayPortf=[[ScrollView alloc] init]; 
     //add as a child view controller here 
     //displayPortf.delegate=(id)self; 
     [_scrollView addSubview:displayPortf.view]; 
     [displayPortf didMoveToParentViewController:self]; 
     [self addChildViewController:displayPortf]; 
    } 
} 

taille de vue du contenu de défilement est (768,200) sur iPad. J'ai essayé de définir content size à (1920,200) en viewDidLoad ne fonctionnait pas alors viewDidAppear ne fonctionnait pas alors viewDidLayoutSubviews ne fonctionnait pas.

Je coché la case use auto layout et essayé d'ajouter des constantes en allant editor->resolve auto layout issues->add constraints

Comment puis-je faire scrollview pour faire défiler?

Remarque: La vue parent utilise la disposition automatique et le storyboard.

+0

Vous avez trop de choses appelées 'views' de défilement, ce qui rend difficile pour quiconque de comprendre ce que vous essayez de faire. Par exemple, je devine que '_scrollView' est en fait la vue du contenu. Aussi la classe appelée 'ScrollView' est apparemment un UIViewController. Si ces suppositions sont correctes, vous devez d'abord instancier le contrôleur de vue, puis ajouter la vue de contenu en tant que sous-vue de 'UIScrollView' qui provient de la plume. – user3386109

Répondre

1

Je suppose que la raison de l'émission est zéro largeur de scrollView.
Lorsque vous appelez ceci:

_scrollView=[[UIView alloc] initWithFrame:CGRectMake(0,200,self.scrollView.frame.size.width,200)]; 

_scrollView est initiée avec une largeur self.scrollView.frame.size.width, mais à ce moment self.scrollView est nul comme lié à variable d'instance _scrollView qui n'a pas encore lancé.

Essayez de mettre une valeur non nulle flottante pour une vue largeur:
_scrollView=[[UIView alloc] initWithFrame:CGRectMake(0,200,768,200)];