iPhone上的自定义UIView应该看起来像UIPopover

时间:2013-10-21 19:01:46

标签: ios xcode uiview popover

我的目标是在工具栏中的栏按钮上创建一个简单的弹出窗口视图。显然Apple不希望我在我的iPhone上创建它。但我已经看到了其他应用程序熟悉的东西。 因此,我不想使用Apple的UIPopOver,而是创建一个单击条形按钮时出现的UIView。再次点击它时会消失。如果我也可以创建指向按钮的小箭头(你知道我指的是哪个箭头:D),它会超过顶部。但目前这不相关。我只是想创建这个“popover出现并使用相同的按钮消失”。我知道的“解决方案”不是解决方案:

- (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,但它没有用。我也不知道如何从我的视角中删除它。 你能帮帮我吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

好的,我解决了。

我在.h-File中定义了一个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];
    }
}