1

Xcode開発は初めてですが、iPhoneアプリでslide-up menuトリガーを開発したいと思います。UIToolbar

私が見ているのは、メニューボタンを使用してサブビューを作成し、それをメインビューに追加し、toggleボタンをタップしたときに上(表示)または下(非表示)にスライドすることです。

これをプログラムで行うにはどうすればよいですか?!iPhone用のOperaアプリはこれをうまく行います(写真を参照)。

オペラアプリ

4

1 に答える 1

5

あなたが言っていることは、メインビューにサブビューを追加し、それを上下にスライドさせて表示および非表示にすることにより、コードで実行できます。

1)サブビューを遠いy座標に追加して、最初はビューに表示されないようにします。

subView  =  [[UIView alloc]initWithFrame:CGRectMake(0,470,320,200)]]; // subView is an ivar
// Add stuffs to your subview
[self.view addSubview:subView];

2)次に、2つのIBActionのshowMySubviewとhideMySubviewを作成し、それらを対応するボタンにリンクします。または、label.textを確認して、1つのボタンを切り替えることができます。

3)showMySubviewで

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.5];
        [UIView setAnimationDelay:0.0];
        subView.frame = CGRectMake(0, 50, 320, 200);
        [UIView commitAnimations];

4)hideMySubviewで

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.5];
        [UIView setAnimationDelay:0.0];
        editPopUpView.frame = CGRectMake(0, 470, 320, 200);
        [UIView commitAnimations];

また、サブビューにいくつかの美化を行って、QuartzCoreフレームワークをプロジェクトに追加し、それを.mファイルにインポートして、サブビューをメインビューに追加した後にこれらの行を追加することもできます。インポートは #import "QuartzCore/QuartzCore.hです。 「」

[[subView layer] setCornerRadius:12.0f];
[[subView layer] setMasksToBounds:YES];
[[subView layer] setBorderWidth:4.0f];
[subView layer].borderColor =   [UIColor purpleColor].CGColor;

これがとにかくあなたを助けることを願っています:)

編集 :

サブビューにコードを介してボタンを追加する:

for (int i = 0; i < 3; i++) {

    for (int j = 0; j < 3; j++) {

        UIButton *btn   =   [UIButton buttonWithType:UIButtonTypeCustom];
        btn.frame       =   CGRectMake(j*60,200+ 35 * i ,50 , 30);
        //[btn setTitle:@"Test" forState:UIControlStateNormal];
        [btn setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
        [btn setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateHighlighted];
        btn.tag =   (j + 1) + (3 * i);
        [btn addTarget:self action:@selector(subViewButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
        btn.showsTouchWhenHighlighted   =   YES;
        [subView addSubview:btn]; // its the subview we added to our main view add this after initializing the subview

    }
}

すべてのボタンのクリックをキャッチする機能になりました

-(IBAction)subViewButtonClicked:(id)sender
{
    switch ([sender tag]) {
    case 1:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }

    case 2:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }
    case 3:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }
    case 4:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }
    case 5:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }

    case 6:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }
    case 7:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }
    case 8:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }

    case 9:
    {
        // Do your stuff here

         NSLog(@"the tag of sender is %i",[sender tag]);

        break;
    }
    default:
        break;
}

}

そこには多くの簡単な方法があるかもしれませんが、これがあなたにスタートを与えることを願っています:)

于 2012-10-16T14:16:48.937 に答える