2010-02-06 25 views
5

¿Cómo puedo crear una barra de desplazamiento personalizada para una UITableView?Barra de desplazamiento personalizada UITableView

Quiero eliminar el predeterminado que aparece cuando comienza el seguimiento y que desaparece cuando finaliza el seguimiento. Quiero, en cambio, tener uno similar en un programa de computadora: (a) está en el lado derecho de la pantalla y permanentemente visible; (b) el desplazamiento manual de la barra desplazará la UITableView a la posición adecuada; (c) al desplazar el UITableView se desplazará la barra de desplazamiento de forma adecuada (sin mostrar el predeterminado que proporciona Apple).

La dificultad en (b) y (c) es que, hasta donde yo sé, Apple solo proporciona métodos para desplazarse a una fila/sección particular, pero no para desplazarse a tres cuartos del camino en una fila . Entonces, por ejemplo, si deseo desplazar la barra de desplazamiento, UITableView posteriormente solo se desplazará a la parte superior de una fila/celda. El método que estoy hablando es:

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 

Alguien ha implementado una barra de desplazamiento personalizado en su UITableView antes? O alguien me puede ayudar a encontrar una manera de resolver los siguientes problemas:

  • desplazamiento a cualquier punto de la UITableView en lugar de al inicio de una célula

  • la eliminación de la barra de desplazamiento por defecto y evitando que aparezcan

  • cambiar la imagen barra de desplazamiento/animación/lo que sea como el UITableView se desplaza

Tha ¡nks!


+0

¿Por qué quieres este comportamiento alguna vez? No puedo imaginar dónde sería esto mejor que un índice con secciones a la derecha de la vista de tabla (como se ve, por ejemplo, en la aplicación Contactos). Tampoco cumple con HIG de Apple y puede hacer que su aplicación sea rechazada desde la tienda de aplicaciones. – MrMage

+1

parcialmente respondida aquí "http://stackoverflow.com/questions/7976593/change-width-and-colour-of-scroll-bar-in-uitableview-iphone" – alekhine

Respuesta

2

UITableView hereda de UIScrollView, lo que significa que puede usar cualquiera de las funciones existentes. En su caso

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

debe hacer el trabajo. Mueve la mesa a cualquier posición que desee.

Para desactivar el indicador de desplazamiento existente, utilice

table.showsVerticalScrollIndicator = NO; 

Y para añadir su propia, sólo tiene que añadir la vista personalizada!

Cuestiones relacionadas