2012-11-20 11 views
9

Jestem bardzo nowym programistą dla IOS, potrzebuję pomocy, Jak utworzyć rozwijane pudełko w Xcode, czy ktoś daje mi przykład do utworzenia listy krajów w rozwijanym menu?Jak utworzyć DropDown w Xcode?

+0

odnoszą się również do https://github.com/satishazad/SAMenuDropDown –

+0

@Ramz proszę nie pisać niedziałający link – yazh

Odpowiedz

18

Tutaj znalazłem dwa dema na liście rozwijanej, jeden jest tworzenie niestandardowych rozszerzalna UITableViewCell jak: -

enter image description here

do

enter image description here

kodu źródłowego: - DEMO

I Innym jest zwyczaj listy rozwijanej jak: -

enter image description here

klikając badanego następnie otwartej liście rozwijanej jako mieszek jak obraz

drop down list

kodu źródłowego z Tab Bar: - DEMO

zaktualizowany kod źródłowy bez paska kart: -

http://www.sendspace.com/file/83qws5

+1

Drugie rozwijanie jest w porządku, ale chcę tego przykładu z zakładką. czy mógłbyś podać mi przykład? –

+1

po prostu dodajesz kontrolkę paska kart w projekcie i impliment above project method –

+1

Przepraszam nitin gohel, chcę ten przykład bez karty, ten przykład ma już karty. –

3

Uważam, że nie należy używać skrzynek rozwijanych w systemie iOS, ponieważ jest to element kontrolny interfejsu użytkownika pulpitu. Powinieneś wymyślić coś innego przy użyciu istniejących komponentów (takich jak PickerView), to są słowa na spójność interfejsu użytkownika.

A jeśli i tak tego potrzebujesz, możesz utworzyć widok tabeli, umieścić go pod etykietą i trójkątny przycisk (który powoduje, że pojawia się i znika) i wypełnić go wartościami.

3

Ponieważ w systemie iOS nie ma natywnych elementów DropDown, można użyć pola TestField z niestandardowym tłem i UITableView, aby to osiągnąć. Oto jak się do tego zabrać.

Pseudokod

  • Tworzenie TextField i ustawić go na delegata do kontrolera nadrzędnego
  • Wdrożenie UITextFieldDelegate i wdrożenie metody textFieldShouldBeginEditing
  • Utwórz nowy UIViewController i realizować w nim UITableView programowo.
  • Utwórz niestandardowy protokół i utwórz go (deleguj).
  • W metodzie `textFieldShouldBeginEditing, załaduj ten kontroler i zaprezentuj go modalnie, przekazując wymagane źródło danych tabeli i ustaw delegata jako nadrzędny.
  • w nowym sterowniku tabeli, zaimplementuj metodę UITableViewDelegate i zaimplementuj metodę ścieżki didSelectRowAtIndex.
  • Po wybraniu wiersza wywołaj delegata, przekazując odpowiednie dane.
  • Odrzucić modalnie przedstawiony kontroler.
1

Prostym i prostym sposobem na zaprojektowanie rozwijanej listy jest przedstawienie jej w postaci UITableView i niektórych animacji. To sprawia, że ​​wygląda naprawdę jak lista rozwijana . Oto kod, którego użyłem do stworzenia jednego. W tym celu należy najpierw zaimportować ramę QuartzCore/QuartzCore.h> <.

-(IBAction)DropDownTable:(id)sender 
{ 
TableView.hidden = NO; 
if(TableView.frame.origin.y ==203) 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.5f]; 
    [TableView setFrame:CGRectMake(224, 204, 27, 160)]; 
    [UIView commitAnimations]; 
    [self.view TableView]; 
} 

else if (TableView.frame.origin.y == 204) 
{ 
    [TableView setFrame:CGRectMake(224, 203, 27, 0)]; 
    TableView.hidden = YES; 
} 

[self.view addSubview:TableActivityLevel]; 
} 

Najpierw zrób widok tabeli, zadeklaruj jej metody i utwórz tablicę. Umieść tę funkcję na kliknięciu UIButton, a zobaczysz, że działa !!!Szczęśliwy kodowania :)

+0

BTW, zależność od wartości origin.y jako flagi wskazującej, czy rozwijanie jest rozwinięte, wydaje się bardzo niejasna [zły zapach kodu]. Nie przyjrzałem się bliżej kodowi, ale mam nadzieję, że nie byłoby trudno zapisać go ponownie, aby użyć jawnej flagi boolowskiej, aby zapamiętać, w jakim stanie znajduje się rozwijane menu. – ToolmakerSteve

1

tylko dla kogo szukają prostego małego pudełka Swift kombi tutaj w 2016 roku, próbowałem kilka starych i nowych (ale obj-c) bibliotekami, a w końcu wybrano to:

https://github.com/sw0906/SWCombox

tu jest zrzut ekranu: enter image description here