2010-05-14 2 views
-4

Quelqu'un peut-il fournir un exemple de code pour le scénario donné?Peut-on mettre un UIButton dans un UIScrollView et vice versa dans l'iPhone

+4

Vous pouvez placer n'importe quelle instance de sous-classe uiview dans une autre, mais pourquoi voulez-vous placer une scrollview dans un bouton? – Vladimir

+0

J'aime faire ça pour le faire, juste pour savoir comment puis-je le faire dans l'iPhone? –

+2

Si vous voulez savoir comment le faire, alors poser la question vainc votre objet. –

Répondre

1
UIScrollView *scrollview = [[[UIScrollView alloc] initWithFrame:CGRectMake(0.0F, 0.0F, 320.0F, 480.0F)] autorelease]; 
[self.view addSubview:scrollView]; 

UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect]; 
[button setTitle:@"Title" forState:UIControlStateNormal]; 
[button setFrame:CGrectMake(0.0F, 0.0F, 50.0F, 50.0F)]; 
[scrollView addSubview:button]; 

Si vous devez ajouter un sous-vue à un UIButton alors vous juste dans l'ordre inverse:

UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect]; 
[button setTitle:@"Title" forState:UIControlStateNormal]; 
[button setFrame:CGrectMake(0.0F, 0.0F, 50.0F, 50.0F)]; 
[[self.view addSubview:button]; 
UIScrollView *scrollview = [[[UIScrollView alloc] initWithFrame:CGRectMake(0.0F, 0.0F, 320.0F, 480.0F)] autorelease]; 
[button addSubview:scrollView]; 

Mais le scrollview va bloquer les touches du bouton sauf si vous définissez userInteractionEnabled et exclusiveTouch propriétés à NO sur la scrollview. Mais cela irait à l'encontre du but d'avoir un scrollview à l'intérieur d'un bouton, je pense.

+0

Fine! Ceci est le code pour définir UIButton dans UIScrollView. Comment le faire vice versa? Quel est le code? –

+0

Ajouté la partie vice versa. – texmex5

0

Et si votre bouton ne peut pas être cliqué, vérifiez simplement la taille du contenu de votre vue (auto-visualisation en cas de IB). Il devrait être supérieur ou égal à la taille du scrollView. Dans mon cas, je mettais la taille du contenu de ScrollView AS-

self.scrollView.contentSize=CGSizeMake(320,580); 

et en ajoutant vue comme sous-vue à la ScrollView

[self.scrollView addSubview:self.view]; 

et ne pas définir la taille de vue. Donc c'était mon erreur. La hauteur de vue par défaut est de 480 dans le cas d'un affichage rétine de 3,5 "et de 568 dans le cas d'une rétine de 4".

donc je résolus en réglant la taille du contenu de mon point de vue AS-

self.view.frame=CGRectMake(0, 0, 320, 700); 

et en ajoutant ce point de vue comme de la sous-vue scrollview.

Questions connexes