2011-01-17 11 views

Odpowiedz

1

Nie sądzę, że można przewijać poziomo UITableView. Moja sugestia byłaby użycie UIScrollView. UIScrollView to super klasa UITableView i zapewnia przewijanie, jakiego oczekujesz od UITableView. To, czego nie otrzymujesz, to zarządzanie komórkami tabeli, które sprawia, że ​​UITableView jest tak wygodny. Dlatego musisz zarządzać własnymi treściami. To trochę więcej pracy, ale masz większą kontrolę.

+1

Możesz dodać 'UITableView' do' UIScrollView' i go przewijać w poziomie. Zobacz moją odpowiedź na to podobne pytanie: http://stackoverflow.com/a/10649401/482557. –

+0

Lepiej idź z UICollectionView z jednym rzędem –

+0

Vinu ma rację. Ta odpowiedź jest przed wyświetleniem kolekcji. – fsaint

0

Nie sądzę, że przewijanie w poziomie jest dobrym pomysłem i prawdopodobnie narusza HIG firmy Apple.

Widok tabeli nie powinien koniecznie zawierać wszystkich informacji, ale tylko niektóre z najważniejszych informacji, aby wyświetlić informacje, które wymagają dużo miejsca Proponuję zrobić widok szczegółów.

1

Co chcesz zrobić, to użyć UIScrollView i wypełnić od lewej do prawej widokami z "komórki".

4

Dla każdego, kto przegląda to pytanie, w przeciwieństwie do innych porad, możliwe jest poziome przewijanie UITableView i nie jest to naruszenie HIG. Gdyby tak było, dlaczego Apple miałby możliwość przewijania w poziomie w ogóle?

Sposób na poprawne działanie polega tylko na ustawieniu rozmiaru obiektu, a nie rozmiaru ramki. Jestem programistą MonoTouch, więc nie jestem pewien jaki jest dokładny odpowiednik w funkcji -c, ale sposób, w jaki to robimy, polega na stworzeniu niestandardowej klasy dziedziczonej z UITableView i przesłaniającej metodę LayoutSubviews. W tej metodzie obliczamy i ustawiamy aktualną ContentSize.

Podejście to uwzględnia wszystkie potencjalne przypadki, w których znaleźliśmy miejsce, w którym można skasować ContentSize, w tym obracanie urządzenia, przewijanie i powiększanie.

5
CGRect frame = tblView.frame; 
tblView.transform = CGAffineTransformRotate(stressTblView.transform, M_PI/2); 
tblView.frame = frame; 
Powiązane problemy