iOS: создание всплывающих окон подсказки / справки

есть ли встроенные, открытые исходники или учебники для создания многоразового простого в использовании всплывающего окна для использования с помощью game-help.

по существу, я хотел бы, при первом запуске игры, показать всплывающие подсказки / помощь, которые "указывают на" различные объекты на экране, чтобы помочь пользователю сориентироваться в игре.

обновление: вот пример о том, как я в конечном итоге хочу, чтобы он выглядел / вел себя, хотя мне это не нужно, но как можно ближе хорошо!--1-->

5 ответов


по сути, вам нужно пользовательское представление.

вы не можете использовать UIAlertView поскольку его цель очень отличается от того, что вы ищете.

Я не знаю, каковы ваши конкретные потребности, но вы можете использовать простой UILabel:

CGRect ref = objectToAddress.frame;

UILabel *tip = [[UILabel alloc] initWithFrame:CGRectMake(ref.x+ref.width, 
                                                         ref.y+ref.height,
                                                         width,
                                                         height)];

[tip setText:messageToShow];

[self.view addSubview:tip];
[tip release];

здесь width и height размеры наконечника, который вы хотите показать и messageToShow - это сообщение, которое вы хотите отобразить.
Вы можете, конечно, настроить свой UILabel Как вам нравится, меняя шрифт или цвет фона. Проверьте ссылка для дополнительной информации.

EDIT:

вы можете взглянуть на возможную реализацию popover для iPhone:WEPopover. На iPad вы можете использовать непосредственно Apple UIPopoverController


Мне нравятся такие:https://github.com/chrismiles/CMPopTipView.

приятно и легко настроить.


то, что я сделал, это создать две функции

- (void) showOverlay: (BOOL) show withMessage: (NSString*) message
{
    if(show)
    {
        // I create or load a UIView with labels, etc, and with an alpha of 0.6/07
        // give it a tag for later dismissal
        overlay.tag = tag; // any arbitrary value

        // add as subview
        [self.view addSubview: overlay];
    }
    else
    {
        // hide the view
        UIView *overlay = [self.view viewWithTag: tag];
        [overlay removeFromSuperview];
    }
}

тогда у меня есть функция скрытия наложения

- (void) hideOverlayInSecs: (NSInterval) time
{
    [self performSelector: @selector(hideOverlay) withObject: nil afterDelay: time];
}

затем вы можете написать функцию-оболочку, чтобы показать / отклонить ее для различной продолжительности

[self showOverlay: YES withMessage: @"help tip"];
[self hideOverlayInSecs: 2];

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

это получилось довольно хорошо, но опять же, мои советы довольно статичны.

Если вы хотите отображать их только при первом запуске, вам нужно создать BOOL, хранящиеся в NSUserDefaults или что-то.


Как насчет этого? Я сам это написал. Это довольно просто и, вероятно, то, что вы ищете. Всплывающее любой экземпляр UIView сверху или снизу, а затем исчезают через несколько секунд.

https://github.com/SaKKo/SKTipAlertView

надеюсь, вы найдете это полезным. ура,