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()