0

私の目標は、ツールバーのバー ボタンの上に単純なポップオーバー ビューを作成することです。どうやら Apple は、私の 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-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];
    }
}
于 2013-10-21T19:20:45.150 に答える