UISTEPPER est très pratique mais je veux modifier l'apparence de celui-ci, j'ai besoin d'avoir une icône personnalisée non pas le plus et moins et que je veux aussi changer la couleur du contrôle. Comment puis-je atteindre cet objectif? Merci d'avance! P>
6 Réponses :
Vous ne pouvez pas le faire actuellement. Vous devrez écrire un objet sur mesure du Référence de la classe UISTEPPER , les seuls paramètres que vous pouvez modifier sont P> uicontrol code> si vous souhaitez personnaliser les icônes.
continuous property
autorepeat property
wraps property
minimumValue property
maximumValue property
stepValue property
value property
Modification de l'arrière-plan code> code> ne fonctionnera pas, en raison des décisions de la manière dont uispper code> a été implémenté. Le questionneur doit déposer un bogue: bugReporrer.apple.com
Je vois que ça suce, de toute façon est là une alternative open source? Merci pour la réponse au fait.
Ceci fonctionne:
[[UIButton appearanceWhenContainedIn:[UIStepper class], nil] setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal]; [[UIButton appearanceWhenContainedIn:[UIStepper class], nil] setBackgroundImage:[UIImage imageNamed:@"highlighted.png"] forState:UIControlStateHighlighted]; [[UIButton appearanceWhenContainedIn:[UIStepper class], nil] setBackgroundImage:[UIImage imageNamed:@"disabled.png"] forState:UIControlStateDisabled];
Belle trouvaille. Toute façon de définir différentes images pour les commandes gauche et droite?
@Andreistoleru Je suppose que vous ciblez iOS5 et que vous voulez dire les images + incrément et - décrémentation. Pas sans sous-classement ni ajout d'une catégorie sur UISTEPPER. Mais vous pouvez personnaliser le diviseur avec [[UImageView apparenceHOCEUnée: [classe UISTEPPER], Nil] Settimage: [UiImage Imagenamed: @ "Divider.png"]];
ApparenceMensedIn code> a été obsolète dans iOS 9 et il n'est plus recommandé d'être utilisé, au cas où les personnes de l'avenir arrivent ici.
comme de iOS 6.0 Vous pouvez utiliser Ceci fonctionne pour iOS 6.0: P>
- (uiImage *) décryptementImageForState: (UICONTROLSTATE) Etat CODE> et
- (UIIMAGE *) IncrémentImageForState: (UICONTROLSTATE) Etat Code> Pour changer le étiquettes sur le contrôle UISTEPPER. P>
[_ STEPER SETDECREMENTIMAGE: [UIIMAGE Imagenamed: @ "décrémenter"] Forstat: uicontrolstatenormal];
code> p>
Fonctionne bien. Cela devrait être la réponse acceptée si sur iOS> = 6.
Vous pouvez toujours passer à travers les uIViews et deviner aussi. Quoi qu'il en soit, c'est mon code, qui ne répond pas directement à la question, mais c'est une sorte de soie.
@implementation UIStepper (Util) - (void) fixForIos7 { if (!IS_IOS7) return; for (UIView *view in self.subviews) { view.backgroundColor = [UIColor whiteColor]; UIButton *button = (UIButton*)view; [button setTintColor:[UIColor blackColor]]; } } @end
Voici une solution qui fonctionne pour moi.
Plate-forme iOS 7.1 P>
[stepper setBackgroundImage:[UIImage new] forState:UIControlStateNormal]; [stepper setDividerImage:[UIImage new] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal];
Voici la version SWIFT 4.0:
extension UIImage { func resize(targetSize: CGSize) -> UIImage { return UIGraphicsImageRenderer(size:targetSize).image { _ in self.draw(in: CGRect(origin: .zero, size: targetSize)) } } }
Ce n'est pas possible. Veuillez déposer un bogue demandant cette fonctionnalité: bugrepor.apple.com