【发布时间】:2012-08-30 15:56:03
【问题描述】:
这里有一个非常简单的问题。 你如何创建这样的视图?
它必须在用户第一次运行应用程序的这一部分时覆盖,并且一旦用户点击它就被永久删除。我知道它应该是一个 UIImageView,但你如何让它处于活动状态,然后永远将其从视图中移除?
【问题讨论】:
标签: iphone objective-c ios xcode uiimageview
这里有一个非常简单的问题。 你如何创建这样的视图?
它必须在用户第一次运行应用程序的这一部分时覆盖,并且一旦用户点击它就被永久删除。我知道它应该是一个 UIImageView,但你如何让它处于活动状态,然后永远将其从视图中移除?
【问题讨论】:
标签: iphone objective-c ios xcode uiimageview
您可以使用UIView 类的addSubView 方法在您的应用委托的didFinishLaunchingWithOptions 方法中添加您的子视图。以下是一些关于如何进行的代码 sn-ps:
- (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。
【讨论】:
UIView 有你需要的所有方法,例如
[myView addSubview:imgView]将图像视图添加到当前视图(myView)[imgView removeFromSuperview](即响应点击或计时器后)确保将imgView 的userInteractionEnabled 属性设置为NO,以便将触摸传递给myView。
【讨论】:
我的想法是设置一个 NSUserDefault 变量并在 applicationDidFinishLaunchingWithOptions 或应用程序中其他有意义的地方检查它。当您的变量为真与假时,您可以只推送一个单独的视图。
【讨论】: