IPhone: как переключаться между подпредставлениями, созданными в Interface Builder - PullRequest
0 голосов
/ 24 июля 2010

Так что у меня в основном есть два подпредставления в моем главном представлении.Я создал каждое подпредставление, перейдя в библиотеку в IB и перетащив представление на мой основной файл пера, а затем разместив на них элементы управления.

Теперь я бы хотел переключаться между этими представлениями с помощью кнопки «перевернуть».,Чего я не понимаю, так это как программно это сделать.

Мой вопрос таков: могу ли я «скрыть» одно из подпредставлений, а затем как-нибудь программно показать его, когда я делаю переворот?Я даю каждому имя через Интерфейсный Разработчик и делаю это таким образом?Мне на самом деле не нужен код, чтобы на самом деле сделать сальто или что-то еще, мне просто нужно концептуальное понимание того, как я буду ссылаться на представления, построенные в IB программно, и если скрытие имеет смысл в моем сценарии ...

Какие-либо предложения?спасибо

Ответы [ 2 ]

6 голосов
/ 24 июля 2010

Вы подключаетесь к вещам в IB с помощью
IBOutlet UIView *myView;
или
@property (nonatomic, retain) IBOutlet UIView *myView;
в вашем заголовочном файле. Ключевое слово IBOutlet указывает IB, чтобы эта розетка была доступна для подключения.

Вы устанавливаете фактическое соединение в Инспекторе соединений, перетаскивая из розетки в представление: установление соединения http://cl.ly/eb3b5cd826b20fc9e307/content

(Сделайте это для обоих ваших взглядов.)

Примечание: ваши представления не обязательно должны быть внутри окна в IB. Вы можете создать их снаружи, и они не будут отображаться, пока вы этого не захотите. Возможно, вы захотите вставить один из них, чтобы он отображался при запуске приложения.

Затем, когда вы действительно хотите перейти к другому представлению, предполагая, что вы используете iOS 4.0, это просто (есть методы для 3.x и ниже, но это самый простой):

[UIView transitionFromView:myView1
                    toView:myView2
                  duration:0.2
                   options:UIViewAnimationOptionTransitionFlipFromRight
                completion:^{
                    // something to do when the flip completes
                }];

Или, если вы хотите динамически определить, какой вид уже виден:

UIView *oldView, *newView;
UIViewAnimationOptions transition;
if (myView1.superview) { // view 1 is already visible
    oldView = myView1;
    newView = myView2;
    transition = UIViewAnimationOptionTransitionFlipFromRight;
} else { // view 2 is visible
    oldView = myView2;
    newView = myView1;
    transition = UIViewAnimationOptionTransitionFlipFromLeft;
}
[UIView transitionFromView:oldView
                    toView:newView
                  duration:0.2
                   options:transition
                completion:^{
                    // something to do when the flip completes
                }];
2 голосов
/ 24 июля 2010

Анимации сделаны программно. (всегда) Так что вам нужна ссылка

в вас @interface напишите что-то вроде этого:

IBOutlet UIView subview1;
IBOutlet UIView subview2
IBOutlet UIView mainView; //this depends on your structure, may be self or if you are in a controller self.view

Вам необходимо связать эти ссылки на представления с представлениями iB.

Затем внутри действия (метода) кнопки просто выполните:

[mainView bringSubviewToFront:subview1];

Если вам нужны анимации, вы можете проверить код Utitlies Template Project of Xcode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...