0

ifステートメントが修飾されていると言うときに、正しいナビゲーションバーボタンを表示する方法があるかどうかを知りたい..ユーザーが詳細を入力している場合、ifステートメントが実行されると言う方法がありますボタンはそこにない状態からフェードインして選択可能になりますか?

現在、私はそこに座っているだけですが、ユーザーが検索ボタンを押すなどのニーズを満たしていることを示すための素晴らしいユーザー報酬になるでしょう.

これが現在私がやっているすべてです。

if (blaa blaa) {
//Add search barbutton
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Search" style:UIBarButtonSystemItemDone target:nil action:nil];
}
4

3 に答える 3

2

まず、rightBarButtonItemをナビゲーションバーに追加し、アルファを0.0に設定する必要があります

彼らはこれを試してみます

[UIView animateWithDuration:0.3f
                      delay:0
                    options:UIViewAnimationCurveEaseInOut
                 animations:^{
                     self.navigationItem.rightBarButtonItem.customView.alpha = 1.0f;

                 }
                 completion:^(BOOL finished) {
                 }];

アップデート

あなたのコードで

if (blaa blaa) {
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setTitle:@"search" forState:UIControlStateNormal];


    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView: btn] autorelease];

    self.navigationItem.rightBarButtonItem.customView.alpha = 0.0f;

}

次に、上記のコードを使用できます

アップデート

申し訳ありませんが、コードを確認しました。UIViewControlerはbarButtonItemプロパティをリセットするため、ビューを表示する前にagianを設定する必要があります。

- (void)viewDidAppear:(BOOL)animated
{
    self.navigationItem.rightBarButtonItem.customView.alpha = 0.0f;
}

次にボタンがタップされたとき

- (void) buttonTap:(UIButton*)btn
{
    [UIView animateWithDuration:1.0f
                      delay:0
                    options:UIViewAnimationCurveEaseInOut
                 animations:^{
                     self.navigationItem.rightBarButtonItem.customView.alpha = 1.0f;
                 }
                 completion:^(BOOL finished) {
                 }];
}

それはうまくいくはずです!

于 2012-04-18T06:51:30.350 に答える
1

-initWithCustomView を使用して、ナビゲーション バー PHEW 内にある UIBarbuttonItem 内に UIButton を作成します。次に、UIButton のアルファに完全にアクセスできます。贅沢な UIBarButtonItem では余裕がありません。

もちろん、これはすべて iOS 5 より前の非常に大きな問題です。+appearance を使用して、ビューの backgroundColor を 0.0 アルファから 1.0 アルファにアニメーション化します (この場合、UIColor はアニメーション化できないことに注意してください。CGColor プロパティを使用します)。

于 2012-04-18T05:07:17.630 に答える
1

これをある程度達成する簡単な方法は、ボタンsetEnableの状態を変更することです。これは、ボタンが表示されるかどうかを変更しませんが、ユーザーがボタンを操作できるかどうかを切り替えます。

ここに画像の説明を入力

if (blahblah == YES) {
    [myBarButtonItem setEnabled:NO];

}else {
    [myBarButtonItem setEnabled:YES];
}
于 2012-04-18T05:36:19.090 に答える