2014-05-18 3 views
0

Pour ajouter une image à un contrôle de segment, comment puis-je déterminer les dimensions d'une boîte de contrôle dans un contrôle segmenté? Par exemple, le contrôle segmenté comporte quatre cases dans l'image ci-dessus, mais elles peuvent être étirées si le contrôle de segment lui-même est étiré. Comment puis-je connaître la taille de l'une des cases afin que je sache la taille de l'image que je souhaite définir pour le contrôle?taille du segment de contrôle de segment

Mise à jour - ce code donne une erreur expected expression lorsque je tente d'utiliser widthForSegmentAtIndex ci-dessous

- (IBAction)segmentChosen:(id)sender { 
    UISegmentedControl *segmentedControl = (UISegmentedControl*) sender; 
    switch ([segmentedControl selectedSegmentIndex]) { 
     case 0: 
      CGFloat widthOfWantedSegment = [segmentedControl widthForSegmentAtIndex:0]; 
+1

Ils sont un grand que vous voulez qu'ils soient. Vous pouvez utiliser 'setWidth: forSegmentAtIndex:' pour définir leur largeur. – rmaddy

+0

@rmaddy merci, même si je l'ai d'abord mis en place dans le storyboard? suffit de créer une sortie et définir la largeur sur la propriété de sortie? – Leahcim

+0

@rmaddy qui a travaillé merci – Leahcim

Répondre

1

Comment puis-je savoir la taille de l'une des cases pour que je sais à quel point grand pour créer un image Je souhaite définir pour le contrôle?

En utilisant la méthode d'instance UISegmentController-widthForSegmentAtIndex:

Ref: UISegmentedControl Apple Doc


CGFloat f_widthOfWantedSegment = [segmentController widthForSegmentAtIndex:1]; 
+0

Salut j'ai mis à jour le OP avec ma tentative d'utiliser la méthode, mais il m'a donné une erreur. Pouvez-vous ajouter un peu plus à votre réponse en fonction de mon erreur. Merci d'avance – Leahcim

+0

@Leahcim: cela fonctionne en tandem avec une largeur de segment fixe. Fondamentalement, lorsque vous définissez explicitement une taille fixe pour un segment en utilisant '-setWidth: forSegmentAtIndex:' au lieu de la largeur "auto" par défaut. Et selon votre question ... «expression attendue» ne ressemble pas à '-widthForSegmentAtIndex:'. _Aujourd'hui ... je vais soit supprimer/mettre à jour cette réponse plus tard. – staticVoidMan

+0

J'ai pu obtenir '-setWidth: forSegmentAtIndex:' pour fonctionner, cependant, je voulais connaître la taille des segments créés par le storyboard (ie avant de définir la largeur dans le code en utilisant la méthode ci-dessus) mais je n'ai pas pu pour fonctionner (comme vous le savez), alors s'il vous plaît montrez-moi comment lorsque vous avez une minute en utilisant le code que j'ai mis dans la mise à jour. Merci beaucoup si vous le pouvez .... – Leahcim

Questions connexes