Szukałem wszędzie i do tej pory nic mi nie wyszło.
Zasadniczo chcę mieć plik .xib o nazwie rootView.xib, a wewnątrz niego chcę mieć UIView (nazwijmy to containerView), który zajmuje tylko połowę ekranu (więc byłby zwykły widok i nowy widok). Następnie chcę inny plik .xib o nazwie firstView.xib i załadować go do kontenera containerView. Mogę więc mieć kilka rzeczy na firstView.xib i kilka różnych rzeczy w rootView.xib i załadować mój firstView.xib w containerView w rootView.xib, ale ponieważ zajmuje tylko połowę ekranu, nadal zobaczysz rzeczy na rootView.xib
ios
objective-c
uiview
xib
Matt
źródło
źródło
Odpowiedzi:
Aby programowo pobrać obiekt z pliku xib, możesz użyć:
[[NSBundle mainBundle] loadNibNamed:@"MyXibName" owner:self options:nil]
co zwraca tablicę obiektów najwyższego poziomu w xib.Możesz więc zrobić coś takiego:
źródło
thisView.alpha = 0
,thisView.superview
(pokazuje zero)Utworzyłem przykładowy projekt na github, aby załadować UIView z pliku .xib do innego pliku .xib. Lub możesz to zrobić programowo.
Jest to dobre dla małych widżetów, których chcesz użyć ponownie w różnych obiektach UIViewController.
źródło
Możesz spróbować:
źródło
[Szybkie wdrożenie]
Uniwersalny sposób ładowania widoku z xib:
Przykład:
Realizacja:
źródło
let view = Bundle.main.loadNibNamed(name, owner: nil, options: nil)?.first as? T
Utwórz plik XIB:
upewnij się, że zaznaczono "także utwórz plik XIB"
Chciałbym z nią występować,
tableview
więc wybrałem podklasęUITableViewCell
możesz wybrać jako swoje wymagania
Projekt pliku XIB według własnego uznania (RestaurantTableViewCell.xib)
musimy chwycić wysokość wiersza, aby ustawić wysokość każdego wiersza
Teraz! trzeba je schować w szybkim pliku. Jestem wkurzony
restaurantPhoto
irestaurantName
możecie was wszystkich schwytać .Teraz dodajemy UITableView
nazwa
Nazwa pliku nib, która nie musi zawierać rozszerzenia .nib.
właściciel
Obiekt do przypisania jako obiekt właściciela pliku końcówki.
opcje
Słownik zawierający opcje używane podczas otwierania pliku nib.
najpierw, jeśli nie zdefiniujesz najpierw, a następnie przechwytujesz cały widok ... więc musisz pobrać jeden widok z tego zestawu
frist
.tutaj jest kontroler widoku tabeli Pełny kod
Skończyłeś :)
źródło
Do szybkiego 3 i 4
źródło
Dla Swift 4.2
Załóżmy, że masz klasę o nazwie NibView, a powiązany plik nib to NibView.xib
utwórz instancję klasy i dodaj w widoku z określonym układem, co chcesz
źródło