0

我的目标是在工具栏中的栏按钮上创建一个简单的弹出视图。所以显然苹果不希望我在我的 iPhone 上创建这个。但我已经在其他应用程序上看到了一些熟悉的东西。因此,我不喜欢使用 Apple 的 UIPopOver 东西,而是创建一个 UIView,它会在单击栏按钮时出现。并在再次单击时消失。如果我也可以创建指向按钮的小箭头(你知道我的意思是哪个箭头:D),那就太棒了。但这目前无关紧要。我只想创建这个“弹出框出现和消失的按钮相同”。我的“解决方案”知道不是解决方案:

- (IBAction)buttonPressed:(id)sender
{
     UIView *myPopOverView = [[UIView alloc] initWithFrame:CGRectMake(25, 25, 500, 250)]; 

     myPopOverView.alpha = 0.0;
     myPopOverView.layer.cornerRadius = 5;
     myPopOverView.layer.borderWidth = 1.5f;
     myPopOverView.layer.masksToBounds = YES;

     UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
     [button addTarget:self
                action:@selector(testNSLog)
      forControlEvents:UIControlEventTouchUpInside];
     [button setTitle:@"Show myPopOverView" forState:UIControlStateNormal];
     button.frame = CGRectMake(10, 10, 100, 30);
     [myPopOverView addSubview:button];

     [self.view addSubview:myPopOverView];

     [UIView animateWithDuration:0.4 animations:^{
        [myPopOverView setAlpha:1.0];
     } completion:^(BOOL finished) {}];
}

所以我不知道如何使用这个代码片段来做到这一点。它立即出现,如我所愿。但我不知道如何创建此切换。我尝试了一个简单的 Bool-If-Toggle,但它没有用。而且我也不知道如何将其从我的视图中删除。你们能帮我解决这个问题吗?

提前致谢!

4

1 回答 1

0

好的,我解决了。

我在 .h 文件中定义了一个 UIView 并在 ViewDidLoad 中实例化它,然后我做了:

- (IBAction)buttonPressed:(id)sender
{
    if (showedOptions == NO) {
        [self.view addSubview:self.popoverView];

        [UIView animateWithDuration:0.4 animations:^{
            [self.popoverView setAlpha:1.0];
        } completion:^(BOOL finished) {}];

        showedOptions = YES;
        return;
    } else {
        showedOptions = NO;
        [self.popoverView removeFromSuperview];
    }
}
于 2013-10-21T19:20:45.150 回答