iOS - Попытка исчезнуть в представлении контроллера в - PullRequest
0 голосов
/ 26 марта 2012

В затенении контроллера вида из черного я делаю следующее в viewDidLoad:

  • Создание UIView с черным фоном;
  • Предоставление UIView альфа-значение 1.0f;
  • Добавление UIView в качестве подпредставления [self view];
  • Затухание черного UIView с помощью animateWithDuration путем изменения его альфазначение до 0.0f
  • Удаление черного UIView из [[self view] subviews]

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

Есть ли способ избежать этого?Есть ли лучший способ разместить этот код, чем viewDidLoad?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 20 апреля 2012

Я хотел бы создать UIView, который я хочу скрыть в nib-файле UIViewController, а затем связать его с помощью IBOutlet

@interface SomeViewController: UIViewController
{
      IBOutlet UIView *blackView;
}

затем в методе UIViewController -(void) viewDidLoad; я бы сделал следующее

- (void)viewDidLoad
{
  [super viewDidLoad];

  // Fade the opacity of blackView over 1 second, 
  // then remove it from the view controller. 
  [UIView animateWithDuration:1 
                  delay:0
                options:UIViewAnimationOptionCurveEaseOut
             animations:^{
                 blackView.layer.opacity = 0;
             } 
             completion:^(BOOL finished) {
                 // This line prevents the flash
                 blackView.layer.opacity = 0;
                 [blackView removeFromSuperview];
             }];
}
0 голосов
/ 26 марта 2012

Да, добавьте представление в метод loadView и выполните фактическую анимацию в viewDidLoad или viewDidAppear.Или сделайте, как сказал вышеупомянутый комментатор, и просто используйте представление альфа.

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