J'ai défini l'apparence de l'uisegmedControl à l'aide du code suivant, et j'ai eu la sortie parfaite
mais maintenant je souhaite définir l'apparence par défaut de Uisegment strong> comme
donc ce que je dois faire ??? p> p> p>
p>
4 Réponses :
Retirez le code pour les images que vous avez attribuées. p>
Mais je souhaite utiliser le segment par défaut pour une seule vue et pour un autre segment personnalisé, j'ai renvoyé ce code dans racineviewcontroller de l'application, alors comment recharger l'apparence du segment par défaut?
Pour d'autres vues, laissez le code tel qu'il est. Pour la vue avec le segment par défaut, vous pouvez utiliser Interface Builder ou ajouter des segments par défaut par code.
J'ai essayé cela dans Interface Builder Son spectacle me montrer par défaut, mais quand j'exécute l'application, cela me montre un vieux segment d'apparence que j'ai fixé tôt .. :(
Définissez ImageName à NIL sur le code ci-dessus et mettez-le sur la vue où vous souhaitez que le comportement par défaut p>
Mettez ce code sur la mentalité de la vue souhaitée avec le contrôleur par défaut
UIImage *segmentSelected = [[UIImage imageNamed:nil]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 12)]; UIImage *segmentUnselected = [[UIImage imageNamed:nil]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 12)];   [[UISegmentedControl appearance] setBackgroundImage:segmentUnselected                 forState:UIControlStateNormal                 barMetrics:UIBarMetricsDefault]; [[UISegmentedControl appearance] setBackgroundImage:segmentSelected               forState:UIControlStateSelected               barMetrics:UIBarMetricsDefault];   [[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:77.0/255.0 green:45.0/255.0 blue:8.0/255.0 alpha:1],UITextAttributeTextColor, [UIColor clearColor], UITextAttributeTextShadowColor, [NSValue valueWithUIOffset:UIOffsetMake(0, 0)], UITextAttributeTextShadowOffset, [UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0], UITextAttributeFont, nil] forState:UIControlStateNormal];   [[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor],UITextAttributeTextColor, [UIColor clearColor],UITextAttributeTextShadowColor, [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],UITextAttributeTextShadowOffset, [UIFont fontWithName:@"HelveticaNeue-Bold" size:16.0], UITextAttributeFont, nil] forState:UIControlStateSelected];   [[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:nil] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Définissez l'image du contrôleur de segment sur nul. Ensuite, une fois nettoyer votre simulateur puis exécutez. Tout ira bien .... p>
@Billwoodger, je voudrais juste implémenter ce code, j'ai changé ce que j'ai pratiquement trouvé et il était clairement visible dans le code. Il semble que ce soit une erreur de copie-pâte. Je connais tous ceux qui vont essayer d'utiliser ce code finiront par trouver l'erreur, mais j'essayais simplement de sauver l'heure d'autre :-)
@Billwoodger tu as raison. Je devrais juste avoir mentionné le problème en commentaire ici. Les mauvaises images sont affectées au
SegmentsElectelected code> et
SEgmSunCelected code> variables ci-dessus.
@Adilmalik Vous pouvez toujours l'ajouter comme une réponse vous-même. Les réponses sont plus visibles que des commentaires. Si vous modifiez la question, vous pouvez confondre les futurs lecteurs qui se demandent pourquoi les réponses ne reflètent pas la question (pas nécessairement dans cet exemple). Je vous suggère d'ajouter une réponse, puis nous pouvons supprimer tous ces commentaires pour garder les choses bien rangées.