2016-07-26 9 views
2

I want to show ContainerView's view controller as like thisкак показать Container Посмотреть ViewController и скрыть Container вид ViewController

Я использую следующий код, и это показывает, как я хочу

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration: 0.8]; 
if (_addLinkQuestionView.isHidden == YES) 
{ 
    _addLinkQuestionView.hidden = NO; 
    _addLinkQuestionView.alpha = 1.0; 
} 
else 
{ 
    _addLinkQuestionView.alpha = 0.0; 
    _addLinkQuestionView.hidden = YES; 
} 
[UIView commitAnimations]; 

но После щелчка на Blurr области, я хочу, чтобы скрыть контейнер Посмотреть. эта область является UIButton. Я использую следующий код, но он ничего не делает.

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration: 0.8]; 
    _addLinkQuestionView.alpha = 0.0; 
    _addLinkQuestionView.hidden = YES; 
[UIView commitAnimations]; 

Любая помощь. Thanx заранее.

+0

Что у вас есть для контейнера? экземпляр UIViewController или xib с .h и .m? – Harris

+0

Пожалуйста, убедитесь, что вторая часть кода выполняется при нажатии области размытия, поставив точку останова или 'NSLog' –

+0

. В принципе, что нужно, чтобы убрать всплывающее окно с анимацией, коснувшись фона? – Harris

ответ

0

По всей видимости, вам необходимо показать поведение alertview, когда все приложения ui отключены, пока включен только контент в диалоговом окне.

  • Добавить публичный метод как showOverlayView: (UIView *) V делегат своего приложения
  • На этом методе создания представления, установить альфа и добавить его в keywindow.
  • Теперь добавьте пройденный вид в keywindow и вычислите и установите его свойство центра.

Альтернативно вы можете использовать библиотеку, такую ​​как MJPopupViewController или SLPopupViewController, чтобы выполнить эту работу за вас.

+0

вы объяснили свою точку зрения я не смог для этого. –

+0

Это изображение имеет требование вы дали https://camo.githubusercontent.com/02c924c29bfaed3a0b54f64438d59adb8e166d68/68747470733a2f2f7261772e6769746875622e636f6d2f6d617274696e6a756861737a2f4d4a506f70757056696577436f6e74726f6c6c65722f6d61737465722f6173736574732f64656d6f322e706e67 MJPopupViewController является библиотека для использования. Или добавьте tapGestureRecognizer в свой вид контейнера, чтобы достичь того же. –

+0

Да. Точно так же, как и показать, но без сторонней интеграции. –

0

Правильный способ сделать это:

1 New File -> UIView -> переименовать его в addLinkQuestionView

2- New File -> OBJ с классом -> переименовать его в addLinkQuestionView

Теперь у вас есть XIB, в .h и .m

3 Перейти к XIb и владельца файла выберите addLinkQuestionView у созданный на шаге 2

4- Дизайн XIB как соединение изображения вы публикуемую и соединить соответствующие выходы для addLinkQuestionView.h

5- Для инициализации вашего UIView в .h сделать это: #import «addLinkQuestionView.h»

@implementation addLinkQuestionView 

/* 
// Only override drawRect: if you perform custom drawing. 
// An empty implementation adversely affects performance during  animation. 
- (void)drawRect:(CGRect)rect { 
// Drawing code 
} 
*/ 

- (id)initWithFrame:(CGRect)frame 
{ 
self = [super initWithFrame:frame]; 
if (self) 
{ 
    // Initialization code. 
    [[NSBundle mainBundle] loadNibNamed:@"addLinkQuestionView" owner:self options:nil]; 


    self.vuComplete.frame = CGRectMake(self.vuComplete.frame.origin.x, self.vuComplete.frame.origin.y, self.frame.size.width, self.frame.size.height); 

    [self addSubview:self.vuComplete]; 

    self.vuContainer.layer.cornerRadius = 5.0; 
    self.vuContainer.layer.borderWidth = 1.0/[UIScreen mainScreen].scale; 
    self.vuContainer.layer.borderColor = [[UIColor clearColor]CGColor]; 
    self.vuContainer.alpha = 0.0; 


    [self layoutIfNeeded]; 

} 
return self; 
} 
-(void)awakeFromNib 
{ 


} 



- (IBAction)onBackgroundTapDismissView:(id)sender { 
[UIView animateWithDuration:0.5 
       animations:^{self.vuContainer.alpha = 0.0;} 
       completion:^(BOOL finished){ }]; 

[self removeFromSuperview]; 

} 

Примечание: - (IBAction) onBackgroundTapDismissView может быть достигнуто путем сбрасывания uitapgesturerecognizer на неактивен фоне UIView вашего addLinkQuestionView таким образом, чтобы ее нажатие может отклонить все UIView (vuComplete)

6- Затем добавить это в главном контроллере представления который представляет это всплывающее как th is: A- import addLinkQuestionView.h first B- добавить этот код в действие кнопки, которую вы нажимаете для представления addLinkQuestionView: addLinkQuestionView * popup = [[addLinkQuestionView alloc] initWithFrame: CGRectMake (0, 0, self.view .frame.size.width, self.view.frame.size.height)];

 [UIView animateWithDuration:0.25 
         animations:^{popup. addLinkQuestionView.alpha = 1.0;} 
         completion:^(BOOL finished){ }]; 
     [self.view addSubview:popup]; 

Удачи!

+0

Как это сделать С ViewController вместо xib. Я уже разработал контроллер вида для контейнера, который показан на рис. –

+0

использование presentViewController функция с анимацией – Harris

 Смежные вопросы

  • Нет связанных вопросов^_^