首次启动我的应用程序后,我想向用户展示一个小教程,以解释我的应用程序的功能。
所以我需要设置一个带有箭头和标签的transpalent UIImageView,其中主UI(更具体地说,tabbarcontroler中的navigationviewcontroller中的tableviewcontroller)在教程图像后面可见。
而且,由于教程包含多个图像,我想添加一个可以切换到另一个图像的点按手势。
我只是尝试将UIImageView添加到我的tabbarcontroller,并添加了一个手势识别器,但它没有对我的水龙头作出反应,它只是工作,就像没有ImageView一样 - 选择表中的鱼子,推动的按钮。
-(void)nextTap:(UIGestureRecognizer*)nextTap
{
//Show another image
}
-(void)showTutorial
{
NSLog(@"Show tutorial");
UIImageView *tutorialImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"BG"]];
[self.navigationController.tabBarController.view addSubview:tutorialImage];
UITapGestureRecognizer *nextTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(nextTap:)];
[tutorialImage addGestureRecognizer:nextTap];
}
任何人都可以告诉我,我应该在哪里添加我的观点,以使其正常工作?
答案 0 :(得分:3)
用另一个UIWindow做到这一点!
像这样:
-(void)showTutorial
{
NSLog(@"Show tutorial");
CGRect screenBounds = [UIScreen mainScreen].bounds;
UIWindow *anotherWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, screenBounds.size.width, screenBounds.size.height)];
anotherWindow.windowLevel = UIWindowLevelAlert+1;
[anotherWindow makeKeyAndVisible];
// make the background of the new window black alpha 0.5
anotherWindow.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
// add a test-image (icon)
UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon.png"]];
[anotherWindow addSubview:image];
UIImageView *tutorialImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"BG"]];
[anotherWindow addSubview:tutorialImage];
UITapGestureRecognizer *nextTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(nextTap:)];
[tutorialImage addGestureRecognizer:nextTap];
}
<强> EDITED 强>!现在它也适用于你的情况。
答案 1 :(得分:2)
添加标签栏后,只需尝试将图像视图添加到主屏幕。这可能正常。我不了解您的主要要求,
答案 2 :(得分:1)
你应该设置tutorialImage.userInteractionEnabled = YES UIImageView的userInteractionEnabled属性的默认值为NO,它阻止UIImageView接收任何触摸事件甚至手势