2010-06-21 18 views
15

Tengo un UIScrollView al que estoy aplicando un fondo negro, que se mezcla en la barra de desplazamiento. He estado buscando una manera de cambiar el color de las barras de desplazamiento a blanco, pero no puedo entenderlo. ¿Hay una forma adecuada de hacer esto?Color de desplazamiento UIScrollView?

Respuesta

27

puede utilizar "indicatorStyle" propiedad:

[scrollView1 setBackgroundColor:[UIColor blackColor]]; 
scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
+3

puedo recordar _Nunca_ este nombre de propiedad. Todo lo demás se llama scrollIndicatorSomething, excepto este. Incluso la autocompleta no puede salvarme de una propiedad tan mal llamada. – Echelon

+1

Puede establecer el color del indicador scrollView, para todos los UIScrollViews en proyecto, con esto: [[UiscrollView appearance] setIndicatorStyle: UIScrollViewIndicatorStyleWhite]; –

+1

UIScrollView.appearance(). IndicatorStyle = UIScrollViewIndicatorStyle.White – johndpope

2

Tanto indicador UIScrollView son sub vista de UIScrollView. Entonces, podemos acceder a la subvista de UIScrollView y cambiar la propiedad de la subvista.

1 .Add UIScrollViewDelegate

@interface ViewController : UIViewController<UIScrollViewDelegate> 
@end 

2. Añadir scrollViewDidScroll en sección de implementación

-(void)scrollViewDidScroll:(UIScrollView *)scrollView1 
{ 
    //get refrence of vertical indicator 
    UIImageView *verticalIndicator = ((UIImageView *)[scrollView.subviews objectAtIndex:(scrollView.subviews.count-1)]); 
    //set color to vertical indicator 
    [verticalIndicator setBackgroundColor:[UIColor redColor]]; 


    //get refrence of horizontal indicator 
    UIImageView *horizontalIndicator = ((UIImageView *)[scrollView.subviews objectAtIndex:(scrollView.subviews.count-2)]); 
    //set color to horizontal indicator 
    [horizontalIndicator setBackgroundColor:[UIColor blueColor]]; 
} 

Nota: - Debido a que estos indicadores de actualización cada vez que cuando se desplaza (significa restablecer a los valores predeterminados). ASÍ, ponemos este código en el método delegate scrollViewDidScroll .

enter image description here

0
//ScrollView Deleagate 
    func scrollViewDidScroll(scrollView: UIScrollView){ 
     let verticalIndicator: UIImageView = (scrollView.subviews[(scrollView.subviews.count - 1)] as! UIImageView) 
     verticalIndicator.backgroundColor = UIColor.redColor() 


     let horizontalIndicator: UIImageView = (scrollView.subviews[(scrollView.subviews.count - 2)] as! UIImageView) 
     horizontalIndicator.backgroundColor = UIColor.blueColor() 
    } 
Cuestiones relacionadas