Blog > Komentarze do wpisu
Blokowanie przesuwania (scroll) UITableView

Czasem możemy być zmuszeni do zablokowania skrolowania w UITableView. Ja musiałem to zrobić po dodaniu obiektu UIDatePicker do UITableView. W zasadzie wszystko działało poprawnie z nowym iOS5, gdy jednak zacząłem testować aplikacje na iOS3.1.3 okazało się, że zmiana daty możliwa jest jedynie, gdy „przytrzymamy” UITableView jednym palcem i zaczniemy manipulować datą innym (nie jest to tez łatwe). Jeśli tego nie zrobimy chcąc zmienić datę, przesuwać będziemy cały widok tabeli. Pokazują to dwa poniższe obrazki, ten po lewej pokazuje przesunięty w górę cały UITableView, ten po prawej, prawidłowe działanie (zmieniona data w UIDatePicker).

 

Przesuniety UITableView                    UIDatePicker dziala jak trzeba

 

Aby problem rozwiązać, w momencie pokazywania Piskera blokuje skrolowanie tabeli:

 

self.tableView.scrollEnabled = NO;

 

a włączam je z powrotem w momencie ukrywania Piskera:

 

self.tableView.scrollEnabled = YES;



Opisany wyżej problem z UIDatePicker i UITableView występuje również w iOS 4.3.1. UIDatePicker działa tak jakbyśmy się tego spodziewali w iOS 5, tu jednak również możliwe jest przesuniecie całego UITableView, jeśli to właśnie za niego, a nie za picker „złapie się” palcem.


wtorek, 06 grudnia 2011, m0rt1m3r

Related Posts Plugin for WordPress, Blogger...

Polecane wpisy





PowerBuilder Tetris
D - Tetris



Programowanie iOS

C# ToolBox

SQL / TSQL / PLSQL ToolBox

Linux / Unix ToolBox





Zaprzyjaznione Strony

Sprite Bandits

Cake Time