2011-11-02 11 views
23

mogłem tylko znaleźć, jeśli ktoś chce, aby wyświetlić pasek przewijania lub nie stosującZmień szerokość i kolor paska przewijania w UITableView, iPhone

tableView.showsVerticalScrollIndicator = YES/NO; 

ale jak mogę dostosować pasek przewijania dla koloru, szerokość i jeśli to możliwe Inne funkcje?

Każda pomoc zostanie bardzo doceniona.

EDIT:

Mam ten pomysł z fragmentów kodu, gdzie trzeba znaleźć logo Google w MKMapKit i przenieść go gdzieś tak, że pozostaje widoczny. według następującej metody można ustawić niestandardowy obraz na pasku przewijania UItbaleview. Ale nie znalazłem nic na temat zmiany rozmiaru paska przewijania.

-(void) ViewDidLoad 
{ 
UIImageView *testView = [self.tableView.subviews objectAtIndex:1]; 
    UIImage *Img = [UIImage imageNamed:@"image.png"]; 
    [testView setImage:Img]; 
} 

EDIT: Jak sugeruje Nekto można użyć następujących czynności, aby zmienić szerokość.

CGRect frame = testView.frame; 
frame.size.width = 10; //set any value you want. 
testView.frame = frame; 

Odpowiedz

35

można ustawić tylko styl wskaźników przewiń:

stylu wskaźników przewijania.

@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle 

Style:

Scroll Indicator Style stylu wskaźników przewijania. Te stałe służą do ustawiania wartości stylu indicatorStyle.

typedef enum { 
    UIScrollViewIndicatorStyleDefault, 
    UIScrollViewIndicatorStyleBlack, 
    UIScrollViewIndicatorStyleWhite 
} UIScrollViewIndicatorStyle; 

Na przykład:

tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack; 
+0

Wielkie dzięki Nekto. Próbowałem tableView.UIScrollViewIndicatorStyle = UIScrollViewIndicatorStyleBlack; który dał błąd kompilacji "nie znaleziono właściwości UIScrollViewIndicatorStyle dla UItableView". Czy coś mi umyka? – chatur

+0

Dodano przykład mojej odpowiedzi. Wypróbuj – Nekto

+1

Działa teraz. Wielkie dzięki. Nawiasem mówiąc, jestem wielkim fanem "Mir Publishers" i bardzo chętnie rozmawiam z kimś z Moskwy. – chatur

1

Możesz ukryć oryginalny pasek przewijania i przewijać za pomocą niestandardowego paska przewijania.

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

może służyć do przewijania zawartości, wystarczy dodać niestandardowy pasek do tabeli.

+0

Manali Dzięki za odpowiedź. Będę potrzebował czasu na wdrożenie twojej sugestii. Dam ci znać, że powyższa metoda działa dla mnie. – chatur

+0

zobacz zaktualizowaną odpowiedź .. – chatur

0

did'n znajdę inny sposób, ale to:

UITableView *v; 
[v setIndicatorStyle:<#(UIScrollViewIndicatorStyle)#>]; 

Jest tylko 3 dostępnych stylów. Jeśli tylko znajdziesz sposób na zaimplementowanie własnego UIScrollViewIndicatorStyle, ale nie mogę sobie nawet wyobrazić, JAK to zrobić: są one implementowane głęboko w ramach UIKit (zadeklarowane w UIScrollView.h), i możesz ustawić tylko flagę, wiedźma używany przez UIScrollView, aby wiedzieć, jakiego stylu użyć. Tak więc nie widzę innego sposobu: trzeba jakoś zaimplementować nowy styl i flagować. Czy to w ogóle możliwe?

+0

Dzięki SentineL za twoje myśli. Na razie nie mogę wymyślić żadnego sposobu na zrobienie tego. Jeśli uda mi się stworzyć niestandardowy pasek przewijania, dam ci znać. – chatur

+0

Przy okazji: Dlaczego tego potrzebujesz? tylko personalizacja, czy jakaś funkcjonalność? Możesz po prostu zaimplementować nowy subView na górze ScrollBar i zrobić to, co chcesz z nim zrobić. po prostu ukryje domyślny wskaźnik. Ale w tym przypadku będziesz musiał zrobić dużo pracy, aby to działało ładnie. – SentineL

+0

zobacz zaktualizowaną odpowiedź. – chatur

6

Można zmienić kolor wskaźnika przewijania za pomocą:

tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite; 

nadzieję, że to pomaga.

3

Możesz dodać tę wielką open source niestandardowy pasek przewijania do projektu, jego całkowicie konfigurowalny: https://github.com/BasheerSience/BRScrollBar

+1

Bardzo dziękuję basheer ... tak naprawdę potrzebuję go ... Więc zasługujesz na głosowanie ... Thnks again –

0

Wskaźnik zmiany koloru z 3 stylu domyślnego koloru.

TextField.indicatorStyle = UIScrollViewIndicatorStyleWhite;

0

Dla Swift 3

collectionView.indicatorStyle = UIScrollViewIndicatorStyle.white

Powiązane problemy