8
votes

Comment définir l'apparence de l'indice UISEGHYDROL par défaut?

J'ai défini l'apparence de l'uisegmedControl à l'aide du code suivant, xxx

et j'ai eu la sortie parfaite Entrez la description de l'image ici

mais maintenant je souhaite définir l'apparence par défaut de Uisegment comme Entrez la description de l'image ici

donc ce que je dois faire ???


3 commentaires

@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 et SEgmSunCelected 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.


4 Réponses :


2
votes

Retirez le code pour les images que vous avez attribuées.


3 commentaires

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 .. :(



3
votes

Définissez ImageName à NIL sur le code ci-dessus et mettez-le sur la vue où vous souhaitez que le comportement par défaut


0 commentaires

10
votes

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];


0 commentaires

1
votes

Définissez l'image du contrôleur de segment sur nul. Ensuite, une fois nettoyer votre simulateur puis exécutez. Tout ira bien ....


0 commentaires