Chcę dodać pasek kart do kontrolera uiview, takiego jak ten obraz:
Górna część (2 etykiety i UIScrollView) są naprawionei tylko dolna część zmienia się, gdy użytkownik zmienia elementy paska kart. Dodałem kontroler paska kart z obiektu w xcode do mojego uiviewcontroller, ale nie mam pojęcia, jak możemy tworzyć widoki kontrolera paska kart, jak po prostu zmienić część strony.
EDYTOWAĆ: Używam tego kodu do tego:
UIViewController viewController1, viewController2;
if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) {
viewController1 = new FirstViewController ("FirstViewController_iPhone", null);
viewController2 = new SecondViewController ("SecondViewController_iPhone", null);
} else {
viewController1 = new FirstViewController ("FirstViewController_iPad", null);
viewController2 = new SecondViewController ("SecondViewController_iPad", null);
}
UITabBarController tabBarController= new UITabBarController ();
tabBarController.ViewControllers = new UIViewController [] {
viewController1,
viewController2,
};
UIView v= tabBarController .View ;
v.Frame = new Rectangle (0,150,320,260);
UITabBar tb= tabBarController .TabBar;
tb.Frame = new RectangleF (0,410,320,50);
this.View .AddSubview (v );
this .View .AddSubview (tb);
ale to nie działa. Widok paska kart wypełnia cały widok, a kiedy klikam przyciski uitabbar, pojawia się wyjątek i aplikacja wymusza zamknięcie.
Odpowiedzi:
1 dla odpowiedzi № 1Może nie być potrzebny pasek kart, aby odtworzyć to zachowanie.
W swoim „miejscu powinno się zmienić ...”, po prostu ustaw zwykły UIView, a my nazwiemy go kontenerem.
W viewDidLoad kontrolera widoku utwórz trzy widoki i zachowaj je w pamięci, nazwijmy je detailView, mapView, agentView.
Następnie na dole możesz po prostu dodać 3 przyciski UIB. Przy każdym naciśnięciu przycisku akcji (TouchUpInside) dodajesz powiązany widok jako widok podrzędny kontenera (tj. AgentButton.TouchUpInside + = () => container.AddSubView (detailsView); * nie zapomnij usunąć poprzedniego.
EDYTOWAĆ :
this.View .AddSubview (tabBarController.View);
tabBarController.View.Frame = new RectangleF(....);
Próbowałem tego w przykładowym projekcie i działa