Iphone 创建点击式覆盖说明视图

Iphone 创建点击式覆盖说明视图,iphone,objective-c,ios,xcode,uiimageview,Iphone,Objective C,Ios,Xcode,Uiimageview,这里有一个非常简单的问题。 如何创建这样的视图? 它必须在用户第一次运行应用程序的这一部分时覆盖,一旦用户点击它,它就会被永久删除。我知道它应该是UIImageView,但如何使其处于活动状态,然后将其永远从视图中删除?我的想法是设置一个NSUserDefault变量,并在ApplicationIDFinishLaunchingWithOptions或应用程序中其他有意义的地方检查它。当变量为true和false时,可以只推一个单独的视图 您可以在应用程序启动后,通过使用UIView类的add

这里有一个非常简单的问题。 如何创建这样的视图?


它必须在用户第一次运行应用程序的这一部分时覆盖,一旦用户点击它,它就会被永久删除。我知道它应该是UIImageView,但如何使其处于活动状态,然后将其永远从视图中删除?

我的想法是设置一个NSUserDefault变量,并在ApplicationIDFinishLaunchingWithOptions或应用程序中其他有意义的地方检查它。当变量为true和false时,可以只推一个单独的视图

您可以在应用程序启动后,通过使用
UIView
类的
addSubView
方法,在应用程序代理的
didfishlaunchingwithoptions
方法中添加子视图。下面是一些代码片段,介绍了如何继续:

- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    UIImageView *imageView = [[UIImageView alloc] 
    initWithImage:[UIImage imageNamed:@"yourimage.png"]];
    [self.window addSubview:imageView];

     UITapGestureRecognizer * recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
     recognizer.delegate = self;
    [imageView addGestureRecognizer:recognizer];
    imageView.userInteractionEnabled =  YES;
    self.imageView = imageView;
}

- (void) handleTap:(UITapGestureRecognizer *)recognize
{
     [self.imageView removeFromSuperView];
}
请注意,您需要一个属性来引用
handleTap
方法中的imageView。

具有您需要的所有方法,例如

  • 调用
    [myView addSubview:imgView]
    将图像视图添加到当前视图(
    myView
  • 完成时调用
    [imgView removeFromSuperview]
    (即响应轻触或在计时器后)

确保
imgView
NO
userInteractionEnabled
属性,以便将触摸传递到
myView

为什么不让子视图处理点击?可以,但问题要求“点击”行为,所以我想海报更喜欢背景视图来处理触摸。好吧,他的标题有误。但他提到:“用户第一次运行应用程序的这一部分时,它必须覆盖,一旦用户点击它,它将永远被删除。”因此,他显然希望点击发生在覆盖视图上。从用户的角度来看,点击将发生在覆盖视图上(因为,嗯,它是覆盖的);处理tap的代码可能位于任一视图中。请注意,userInteractionEnabled属性被设置为NO,作为UIImageViewI的默认值。我获得了“从不兼容的类型“AppDelegate*”分配给“id”-有任何建议吗?谢谢您需要通过如下声明使您的AppDelegate符合UIgestureRecognitizerDelegate:yourAppDelegate()