Показывать баннер сверху экрана

Я хочу создать пошаговый матч. Когда игрок получил уведомление player:receivedTurnEventForMatch:didBecomeActive:

Я хочу показать баннер, который скользит сверху экрана. «Ваш ход. Играйте» похоже на баннер, который Game Center показывает, когда игрок аутентифицирован.

Как мне это сделать? Должен ли это быть UIViewController или UIAlert, или как? введите здесь описание изображения


person Sasha Shumylo    schedule 23.02.2014    source источник


Ответы (2)


вот хороший пример уведомления о том, что вы хотите, я надеюсь, что это поможет вам: https://github.com/ekurutepe/MPNotificationView или https://github.com/edgurgel/CMNavBarNotificationView или https://github.com/terryworona/TWMessageBarManager

person chawki    schedule 23.02.2014
comment
Спасибо. Я посмотрел код TWMessageBarManager и увидел, как я могу это сделать. - person Sasha Shumylo; 24.02.2014
comment
Любое предложение для быстрого? - person Utku Dalmaz; 22.04.2016

Есть МНОГО способов сделать то, что вы упомянули. Это только один из них. Не стесняйтесь изменять код и читать об анимациях UIView, чтобы вы могли попробовать разные вещи самостоятельно.

-(void)myMethod {
// create UILabel and set its properties
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, 320, 50)];
myLabel.backgroundColor = [UIColor grayColor];
NSString *myLabelText = @"Welcome back, Mike Lyman"; // showing you to use NSString for label text
myLabel.textAlignment = NSTextAlignmentCenter;
myLabel.text = myLabelText;

[self.view addSubview:myLabel]; // add UILabel to view

myLabel.frame = CGRectMake(0, -50, 320, 50); // set text label frame offscreen

// start the animation to slide UILabel into visible view
[UIView animateWithDuration:0.5 delay:0
                    options:UIViewAnimationOptionCurveLinear
                 animations:^ {
                     myLabel.frame = CGRectMake(0, 20, 320, 50);

                 }
                 completion:^(BOOL finished) {
                     // after 1 second delay, start sliding UILabel out of visible view
                     [UIView animateWithDuration:0.5 delay:1
                                         options:UIViewAnimationOptionCurveLinear
                                      animations:^ {
                                          myLabel.frame = CGRectMake(0, -50, 320, 50);

                                      }
                                      completion:^(BOOL finished) {
                                          NSLog(@"Done");
                                          [self.view removeFromSuperview]; // remove UILabel from view completely
                                      }];
                 }];
}
person sangony    schedule 23.02.2014
comment
Привет, спасибо. Но если я хочу добавить UIButton Play и UIImage? - person Sasha Shumylo; 24.02.2014
comment
Это зависит от вашей общей идеи дизайна для вашего приложения. Код, который я разместил, представляет собой небольшую анимацию, которая перемещает UILabel в видимое представление и из него. Если вы хотите добавить кнопки и изображения, я предлагаю вам сделать это в основном виде, а не в анимированном. Если бы вы действительно хотели добавить его в анимированный вид, вам пришлось бы сделать намного больше кода, чем я опубликовал. - person sangony; 24.02.2014
comment
Понятно, тогда мне придется анимировать каждый объект? Я имею в виду, что нет возможности сгруппировать UILabel, UIButton и UIImage и анимировать только эту группу? )) Как вы думаете Apple реализовала баннер, то есть на изображении, которое я разместил. Я хочу создать пользовательский объект и вызывать его, когда я получаю уведомление от GameCenter, где бы я ни находился в приложении. - person Sasha Shumylo; 24.02.2014
comment
Вы можете сгруппировать кучу вещей, таких как UILabel, UIButton и т. д., и добавить их все в UIView. Затем вы добавляете UIView следующим образом [self.view addSubview:myView2]; Похоже, у вас уже есть куча отличных идей для вашего приложения, но вы не знаете, как их кодировать. Возможно, вам будет лучше сделать шаг назад и получить еще несколько учебных пособий, прежде чем продолжить, иначе вы можете провести бесчисленное количество разочаровывающих часов. Я говорю из опыта. - person sangony; 24.02.2014
comment
Взгляните на этот сайт и подумайте о том, чтобы потратить некоторое время на выполнение некоторых из их руководств, которые помогут вам перейти на следующий уровень. raywenderlich.com - person sangony; 24.02.2014
comment
Спасибо. Я понимаю. Я могу рисовать в drawRect все, что мне нужно: это может выглядеть как отдельные объекты (UIImage, UILabel и т. д.), но на самом деле это одно изображение. Я начал со Стэнфордского курса, но в конце решил поработать над собственным проектом. Только на практике можно понять все, что нужно. Спасибо. - person Sasha Shumylo; 24.02.2014