Библиотека уведомлений в стиле Growl / Toast для iOS - PullRequest
18 голосов
/ 17 мая 2011

Кто-нибудь может порекомендовать библиотеку для реализации уведомлений в стиле рычания или тостов на iOS?Например, после того, как пользователь сохраняет профиль, я хочу, чтобы уведомление появлялось, задерживалось на 3 секунды, сообщало «профиль сохранен» и исчезало.Прямо сейчас у меня есть UIAlertView, который прерывает рабочий процесс пользователя одной кнопкой «ОК», и я чувствую, что это излишне.

Класс Android Toast является примером того, что яищу на iOS.

Спасибо!

Ответы [ 12 ]

45 голосов
/ 25 июля 2011

Я создал решение, которое, я думаю, вы найдете полезным: https://github.com/scalessec/toast

Он написан как категория obj-c, по существу добавляя методы makeToast к любому экземпляру UIView. например:

[self.view makeToast:@"Profile saved"
            duration:2.0
            position:@"bottom"];
6 голосов
/ 01 марта 2012

Я решил это следующим образом:

  1. Создайте общую метку на ваш взгляд.Сделайте все это широким экраном, укажите необходимый вам размер и поместите текст по центру.
  2. Установите его положение «сверху» - эта метка должна находиться ниже всех ваших элементов управления в списке элементов управления.
  3. Добавьте его в интерфейс, свойства, синтезируйте (давайте назовем его там "toastLabel").
  4. Ассоциируйте в своем файле XIB с "toastLabel"
  5. Добавьте следующую строку вyour viewWillAppear, чтобы скрыть метку для начала:

    [toastLabel setHidden:TRUE];
    
  6. Добавьте следующий код при нажатии кнопки (или другом событии):

    toastLabel.text = @"Our toast text";
    [toastLabel setHidden:TRUE];
    [toastLabel setAlpha:1.0];
    CGPoint location;
    location.x = 160; 
    location.y = 220; 
    toastLabel.center = location;
    location.x = 160; 
    location.y = 320; 
    [toastLabel setHidden:FALSE];
    [UIView animateWithDuration:0.9 animations:^{
        toastLabel.alpha = 0.0;
        toastLabel.center = location;
    }];
    

Этот ярлык будет "падать" и исчезать.

5 голосов
/ 20 сентября 2013

Вы можете попробовать мою библиотеку с открытым исходным кодом TSMessages: https://github.com/toursprung/TSMessages

Это действительно просто в использовании и прекрасно выглядит как на iOS 5/6, так и на iOS 7.

5 голосов
/ 03 ноября 2011

Хотя и немного поздно, вот мое мнение:

https://github.com/pcperini/PCToastMessage

4 голосов
/ 23 мая 2011

Я сделал свой собственный.Класс, связанный с Кришнаном, был ужасен и не вращался правильно.

https://github.com/esilverberg/ios-toast

Вот как это выглядит: enter image description here

3 голосов
/ 06 января 2015

Я сделал это следующим образом:

+ (void)showToastMessage:(NSString *)message {    
UIAlertView *toast = [[UIAlertView alloc] initWithTitle:nil
                                                message:message
                                               delegate:nil
                                      cancelButtonTitle:nil
                                      otherButtonTitles:nil, nil];
[toast show];

// duration in seconds
int duration = 2;

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, duration * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
    [toast dismissWithClickedButtonIndex:0 animated:YES];
});

}

Обновленное решение для iOS9 +:

+ (void)showToastMessage:(NSString *)message
                root:(id)view {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil
                                                                             message:message
                                                                      preferredStyle:UIAlertControllerStyleAlert];
// duration in seconds
int duration = 2;
[view presentViewController:alertController animated:YES completion:nil];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, duration * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
    [alertController dismissViewControllerAnimated:YES completion:nil];
});
}
2 голосов
/ 25 июля 2011
1 голос
/ 11 августа 2015

Это именно то, что вы хотите.Это также очень удобно, так как имеет блок завершения, пожалуйста, посмотрите :) https://github.com/PrajeetShrestha/EkToast

1 голос
/ 17 мая 2011

Эй, ты ищешь это.

https://github.com/PaulSolt/WEPopover#readme

0 голосов
/ 05 января 2017

Swift 3

Уже некоторое время очень счастливо пользуюсь Rannie / Toast-Swift для Swift 3 и могу рекомендовать его для очень похожего "Android-подобного" опыта. Его очень просто реализовать, не нуждаясь в другом модуле, и довольно настраиваемый в зависимости от ваших потребностей.

Easy Peasy

view.makeToastActivity()
view.hideToastActivity()
...