2009-06-22 4 views
13

Powiedzmy, że mój UISegmentedControl ma 8 ponumerowanych segmentów. Chciałbym, aby użytkownik mógł włączyć 2, 3 lub więcej z nich jednocześnie. Przełączanie ich. Zasadniczo jak bity w bajcie. czy to możliwe? Wydaje mi się, że jest to normalne Mac OS X, ale nie mogę znaleźć sposobu, aby to zrobić w iPhone SDK.Jak mogę włączyć wiele segmentów narzędzia UISegmentedControl?

Jeśli mam do symulacji to poprzez umieszczenie przycisków do widzenia, czy jest jakiś sposób, aby wykonać następujące czynności:

  1. Okrągły kątach widzenia tak, że wygląda jak „bar” stylu UISegmentedControl?
  2. Użyj wbudowanych tła, które ma styl "paska" na przyciskach?
  3. Daj przyciskom cień podobny do całego stylu "barowego"? (nie tekst)

Odpowiedz

8

Nie jest to możliwe przy użyciu UIKit. Polecam tworzenie niestandardowego formantu lub tablicy kontrolek UISwitch, reprezentujących każdą z opcji w UISegmentedControl.

2

Myślę, że najprostszym sposobem jest stworzenie własnej segmentedcontrol z UIButton.

Marco

+3

Jednym ze sposobów na wykonanie tego, co zrobiłem w aplikacjach wysyłkowych, jest użycie UILabel z zaokrąglonymi krawędziami i umieszczenie prostokątnych UButtonów w środku. W ten sposób można uzyskać zaokrąglone krawędzie dla połączonego sterowania. Cieszyć się. –

1

Wygląda na to, że teraz można to zrobić w XCode. W Inspektorze atrybutów znajduje się sekcja z segmentem, tytułem, obrazem, zachowaniem. Opcje zachowania to "Włączone" i "Wybrane". Możesz wybrać "Wybrane" dla wielu segmentów.

+9

Nie sądzę, że to działa. W Xcode, gdy wybiorę "Selected" dla segmentu, pozostałe segmenty pozostaną niezaznaczone. Ponadto metody UISegmentedControl obejmują setEnabled: forSegmentAtIndex, ale nie setSelected: forSegmentAtIndex (który byłby przydatny). Próbuję zrobić to samo co OP i wydaje mi się, że potrzebuję stworzyć niestandardową kontrolę. Trochę ironii, ponieważ przyciski pomocnicze w samym górnym Xcode są dokładnie tym, do czego strzelam (na przykład Mac). –

6

To najlepsza kontrola zwyczaj Odkryłam, że pozwala na wiele segmentów, które zostaną wybrane równocześnie:

https://github.com/yonat/MultiSelectSegmentedControl

Ten jest podklasą UISegmentedControl, co jest wygodne. Mam rozwidlony tutaj:

https://github.com/stewartmacdonald/MultiSelectSegmentedControl

i dodano kilka przykładów kodu do pliku ReadMe i dodaje metodę, która pozwala uzyskać NSArray z tytułami wszystkich wybranych segmentów.

+0

' MultiSelectSegmentedControl' jest bardzo ładne. Rozszerza "UISegmentedControl", więc wszystkie jego metody są dostępne. –