Pregunta

Para personalizar el aspecto visual de un UISlider puede establecer el pulgar y el seguimiento de las imágenes. Parte de las imágenes de la pista se estira a la adecuada con. A partir de la documentación:

  

Una región estirable se encuentra entre dos   regiones tapa. Las tapas de los extremos definen   las partes de la imagen que permanecen   tal como es y no se estiran. los   región estirable es un 1-punto amplia   área entre las tapas de los extremos que pueden ser   replicada para hacer que la imagen aparezca   más tiempo.

Ahora el problema que tengo es que mi región estirable tiene que ser más de 1 punto de ancho. (Es un patrón) Desafortunadamente la anchura de 1 punto parece estar codificado en el SDK.

Cualquier persona que tenga una idea de cómo solucionar esto? O voy a tener que escribir mi propio deslizador desde cero para esto?

¿Fue útil?

Solución

Creo que usted tendrá que escribir su propio control deslizante para hacer eso. No parece haber ninguna API (público) para cambiar el comportamiento de UISlider con respecto a la región estirable.

Otros consejos

Sólo tiene que usar imágenes transparentes como imágenes de la pista, y poner un UIImageView a continuación :)

Sé que es la respuesta tardía.

Sin embargo, he resuelto el problema de la siguiente manera:

4 es la anchura de la tapa redonda en el archivo png.

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

Se podía crear las imágenes para ser tan amplio como se necesita que sean, con pre-renderizados el patrón.

Es necesario inicializar su imagen con stretchableImageWithLeftCapWidth: topCapHeight :. leftCapWidth y topCapHeight son propiedades de los objetos de imagen de sólo lectura, pero el uso de esta función puede establecerlos. Sólo se ajusta la izquierda y arriba, porque las tapas izquierda y derecha son del mismo tamaño, y la parte superior e inferior también son los mismos. Por lo tanto, utilizar una pista deslizante a medida con un tamaño lado izquierdo de 5 píxeles, es necesario tener una imagen de 11 píxeles de ancho, por lo que la altura que necesita: 5 para la tapa izquierda, 1 píxel de ancho que se extendía por la pista, y 5 más por la derecha. Al no haber jugado con él, no sé si se utiliza un topCapHeight mayor que 0 funciona como se esperaba, pero sospecho que no causaría una gran cantidad de problemas.

Yo quería un patrón detrás de mi UISlider. Terminé el establecimiento de ambas imágenes a cero y la adición de un punto de vista bajo el control deslizante ya que no se tenía necesidad de ser diferente en cada lado del pulgar. Esto sería más difícil si necesita cambiarla en base a la posición, pero bastante factible.

para hacer su encargo UISlider usted tiene muchas maneras. Dependiendo de lo que desea la personalización. existen propiedades por defecto se puede configurar para personalizar su UIslider, como siguiente: setThumbImage: forState: setMinimumTrackImage: forState: setMaximumTrackImage: forState: Si desea una mayor personalización puede consultar el siguiente enlace https://medium.com/@0209neha/creating-a -custom-uislider-7756bf898832 # .o1l4qhymo https://github.com/0209Neha/ExploringSlider

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top