Question

Pour personnaliser l'aspect visuel d'un UISlider vous pouvez définir le pouce et le suivi des images. Une partie des images de la piste s'étirée à la appropriée avec. De la documentation:

  

Une région extensible se trouve entre deux   les régions de bouchon. Les capuchons d'extrémité définissent   les parties de l'image qui restent   comme il est et ne sont pas étirés. le   région extensible est un grand point 1   zone située entre les capuchons d'extrémité qui peuvent être   répliquée pour faire apparaître l'image   plus.

Maintenant, le problème est que je ma région étirable doit être plus de 1 point de large. (Il est un motif) Malheureusement, la largeur 1 point semble être codée en dur dans le SDK.

Toute personne ayant une idée comment contourner cela? Ou est-ce que je dois écrire mon propre curseur à partir de zéro pour cela?

Était-ce utile?

La solution

Je crois que vous devez écrire votre propre curseur pour le faire. Il semble y avoir aucune API (public) pour modifier le comportement de UISlider en ce qui concerne la région étirables.

Autres conseils

Il suffit d'utiliser des images transparentes comme des images de la piste, et de mettre un UIImageView ci-dessous :)

Je sais qu'il est réponse tardive.

Mais je résolu le problème comme suit:

4 est la largeur de la calotte ronde dans le format PNG.

UIImage *minimum = [UIImage imageNamed:@"slider_minimum.png"];
[slider setMinimumTrackImage:[minimum stretchableImageWithLeftCapWidth:4 topCapHeight:0]
                      forState:UIControlStateNormal];

Vous pouvez simplement créer les images pour être aussi large que vous avez besoin d'être, avec le motif pré-rendu.

Vous devez initialiser votre image avec stretchableImageWithLeftCapWidth: topCapHeight :. leftCapWidth et topCapHeight sont en lecture seule des propriétés des objets d'image, mais en utilisant cette fonction vous pouvez les régler. Vous définissez seulement la gauche et en haut parce que les bouchons gauche et à droite sont de la même taille, et le haut et le bas sont également les mêmes. Donc, pour utiliser une piste de curseur personnalisé avec une taille de côté gauche de 5 pixels, vous devez avoir une image de 11 pixels de large, quelle que soit la hauteur dont vous avez besoin: 5 pour le bouchon gauche, 1 pixel de large qui est étirée pour la piste, et 5 de plus pour le droit. Ayant pas joué avec elle, je ne sais pas si vous utilisez un topCapHeight supérieur à 0 fonctionne comme prévu, mais je soupçonne que ce ne serait pas causer beaucoup de problèmes.

Je voulais un modèle derrière mon UISlider. J'ai fini par mettre les deux images à zéro et en ajoutant une vue sous le curseur puisque je ne l'ai pas besoin d'être différent de chaque côté du pouce. Ce serait plus difficile si vous avez besoin de changer en fonction de la position, mais tout à fait faisable.

pour faire votre commande UISlider vous avez plusieurs façons. En fonction de la personnalisation que vous voulez. il y a des propriétés par défaut que vous pouvez définir pour personnaliser votre UIslider, comme suit: setThumbImage: forState: setMinimumTrackImage: forState: setMaximumTrackImage: forState: Si vous souhaitez une personnalisation plus poussée, vous pouvez consulter le lien ci-dessous https://medium.com/@0209neha/creating-a -custom-uislider-7756bf898832 # .o1l4qhymo https://github.com/0209Neha/ExploringSlider

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top