2010-06-21 37 views
15

Tôi có một UIScrollView mà tôi đang áp dụng một nền đen, trong đó pha trộn trong thanh cuộn. Tôi đã tìm kiếm một cách để thay đổi màu thanh cuộn thành màu trắng, nhưng tôi không thể tìm ra nó. Có một cách thích hợp để làm điều này?Màu cuộn UIScrollView?

Trả lời

27

Bạn có thể sử dụng "indicatorStyle" bất động sản:

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

tôi có thể _never_ nhớ tên khách sạn này. Mọi thứ khác được gọi là scrollIndicatorSomething ngoại trừ cái này. Ngay cả tính năng tự động hoàn tất cũng không thể lưu tôi từ một thuộc tính có tên xấu như vậy. – Echelon

+1

Bạn có thể đặt màu của chỉ báo scrollView, cho tất cả UIScrollViews trong dự án, với điều này: [[UIScrollView xuất hiện] setIndicatorStyle: UIScrollViewIndicatorStyleWhite]; –

+1

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

2

Cả hai chỉ số UIScrollView là xem con của UIScrollView. Vì vậy, chúng tôi có thể truy cập chế độ xem phụ của UIScrollView và thay đổi thuộc tính của chế độ xem phụ.

1 .Add UIScrollViewDelegate

@interface ViewController : UIViewController<UIScrollViewDelegate> 
@end 

2. Thêm scrollViewDidScroll trong phần thi

-(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]]; 
} 

Lưu ý: - Bởi vì các bản cập nhật chỉ số mỗi khi bạn di chuyển (có nghĩa là đặt lại về mặc định). SO, chúng tôi đặt mã này trong phương thức ủy nhiệm 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() 
    } 
Các vấn đề liên quan