Подсказки в iOS через собственные элементы управления пользовательским интерфейсом?

Как создать всплывающие подсказки или что-то подобное в iOS, без использования каких-либо сторонних классов? У меня есть UIButton, что я бы хотел всплывать всплывающие подсказки в течение нескольких секунд или до тех пор, пока он не будет очищен. Я видел сторонние классы и библиотеки, но хочу знать, поддерживает ли он его. Я также хочу показать стрелку, которая появляется, откуда появляется всплывающая подсказка. Я видел, что некоторые всплывающие окна UIActionSheet имеют эту стрелку.

Ура, Amit

4
nl ja de

4 ответы

Ну, я закончил использовать стороннюю подсказку CMTopTipView afterall. Это относительно низкие накладные расходы, просто заголовок и реализация. Немного изменил его для учета ARC. Вот что я сделал:

#import "CMPopTipView.h"

CMPopTipView *navBarLeftButtonPopTipView;

- (void) dismissToolTip
{
   [navBarLeftButtonPopTipView dismissAnimated:YES];
}

- (void) showDoubleTap
{
    navBarLeftButtonPopTipView = [[CMPopTipView alloc] 
       initWithMessage:@"DOUBLE Tap \n to view details"] ;
    navBarLeftButtonPopTipView.delegate = self;
    navBarLeftButtonPopTipView.backgroundColor = [UIColor darkGrayColor];
    navBarLeftButtonPopTipView.textColor = [UIColor lightTextColor];
    navBarLeftButtonPopTipView.opaque = FALSE;
    [navBarLeftButtonPopTipView presentPointingAtView:catButton1 
        inView:self.view animated:YES];
    navBarLeftButtonPopTipView.alpha = 0.75f;

    NSTimer *timerShowToolTip = [NSTimer scheduledTimerWithTimeInterval:5.0 
     target:self 
     selector:@selector(dismissToolTip) userInfo:nil repeats:NO];

 }
6
добавлено

Если вы используете iPad, вы можете использовать UIPopoverView . У вас также есть UIMenuController для работы с подобными функциями на iPhone или iPad: учебник . Помимо этого вы можете просто сделать свой собственный подкласс UIView , чтобы сделать это, но тогда вам придется обрабатывать стрелку самостоятельно.

3
добавлено
@AmitApollo, каким образом?
добавлено автор Dejell, источник
оба - отличные идеи, но я закончил движение в другом направлении. Спасибо за ваш вклад!
добавлено автор ApolloSoftware, источник
Я использовал CMPopTipView (сторонний элемент управления), чтобы настроить его размер и непрозрачность и затухающую альфу.
добавлено автор ApolloSoftware, источник

Ну, что я делал, было относительно просто. Я закончил использовать UIActionSheet без кнопок только текст. Затем использовал showFromRect из координатной плоскости, где UIButton находился в self.view.

UIActionSheet *popup = [[UIActionSheet alloc] 
initWithTitle:@"DOUBLE Tap \n to view details." 
delegate:self cancelButtonTitle:@"Cancel" 
destructiveButtonTitle:nil otherButtonTitles: nil];

[popup sizeToFit];
popup.tag = 9999; 
CGRect myImageRect = CGRectMake(240.0f, 605.0f, 30.0f, -40.0f);
[popup showFromRect:myImageRect inView:self.view animated:YES];

Я могу просто сосать его и использовать CMPopTipView (сторонний элемент управления), чтобы настроить его размер и непрозрачность и затухающую альфу.

1
добавлено

Я видел, что некоторые из вас используют CMPopTip, отличную «библиотеку». Прохладный путь!

Несколько вещей, если вы используете это в iOS7, у вас есть некоторые изъяны.

Новое использование устаревшей части текста (это пример)

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = self.titleAlignment;

    [self.title drawInRect:titleFrame withAttributes:@{NSFontAttributeName:self.titleFont,NSParagraphStyleAttributeName:paragraphStyle}];

До свидания!

1
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.