【问题标题】:iOS: Creating tip / help popupsiOS:创建提示/帮助弹出窗口
【发布时间】:2012-03-05 14:25:32
【问题描述】:

是否有任何内置、开源或教程可用于创建可重复使用且易于使用的弹出窗口,以便在游戏帮助中使用。

基本上我想在第一次运行游戏时显示弹出提示/帮助,以“指向”屏幕上的各种对象,以帮助用户在游戏中定位自己。

更新:Here is an example 我最终希望它看起来/行为如何,虽然我不需要它那么通用但尽可能接近会很好

【问题讨论】:

    标签: iphone objective-c ios uikit


    【解决方案1】:

    我喜欢那些:https://github.com/chrismiles/CMPopTipView

    不错且易于设置。

    【讨论】:

      【解决方案2】:

      基本上您需要的是自定义视图。

      您不能使用 Apple 的 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];
      

      其中widthheight 是您要显示的提示的尺寸,messageToShow 是您要显示的消息。
      当然,您可以根据需要自定义UILabel,更改字体或背景颜色。查看reference 了解更多信息。

      编辑:

      您可以查看可能的 iPhone 弹出框实现:WEPopover。在 iPad 上可以直接使用苹果的UIPopoverController

      【讨论】:

      • 感谢 Saphrosit 的回答。我用一个链接更新了我的 Q,这有助于更详细地解释我所追求的。
      【解决方案3】:

      我所做的是创建了两个函数

      - (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];
      

      【讨论】:

        【解决方案4】:

        在我的应用程序中,提示是相当静态的,所以我使用我最喜欢的图像编辑器创建了一个提示图像,然后简单地使用提示图像创建了一个 UIImageView,然后将其作为子视图添加到当前视图中,确保将其置于其他视图之上。

        效果很好,但我的提示还是相当固定的。

        如果您只想在第一次运行时显示它们,您需要创建一个 BOOL 并保存在 NSUserDefaults 中。

        【讨论】:

          【解决方案5】:

          这个怎么样? 这是我自己写的。这很简单,可能是您正在寻找的。 在顶部或底部弹出任何 UIView 实例,然后在几秒钟后消失。

          https://github.com/SaKKo/SKTipAlertView

          希望你觉得它有用。干杯,

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-02-09
            • 2021-10-07
            • 1970-01-01
            • 2011-09-30
            • 1970-01-01
            相关资源
            最近更新 更多