1

画面に 3 つのボタンがあるアプリを作成しています。いずれかのボタンを常に選択する必要があります。アプリが読み込まれると、最初のボタンが選択済みに設定され、そのアクションが実行されます。ユーザーが別のボタンを押すと、現在のボタンの選択が解除され、新しいボタンが選択されます。

私はObjective-Cに少し慣れていません。これは私が思いついたものですが、期待していたものはどれも機能しません。ヘッダーにボタンアウトレットをセットアップしました。



    - (IBAction)buttonSelector:(id)sender
    {
        firstButton.selected = YES;
        secondButton.selected = NO;
        thirdButton.selected = NO;

        if (firstButton.selected = YES)
        {
            [firstbutton setBackgroundImage:[UIImage imageNamed:"selected.png"]];
            secondButton.selected = NO;
            [secondButton setBackgroundImage:[UIImage imageNamed:"un_selected.png"]];
            thirdButton.selected = YES;
            [thirdButton setBackgroundImage:[UIImage imageNamed:"un_selected.png"]];
        } else if (secondButton.selected = YES)
        {
            [secondButton setBackgroundImage:[UIImage imageNamed:"selected.png"]];
            firstButton.selected = NO;
            [firstButton setBackgroundImage:[UIImage imageNamed:"un_selected.png"]];
            thirdButton.selected = NO;
            [firstButton setBackgroundImage:[UIImage imageNamed:"un_selected.png"]];
        } else if (thirdButton.selected = YES)
        {
            [thirdButton setBackgroundImage:[UIImage imageNamed:"selected.png"]];
            firstButton.selected = NO;
            [firstButton setBackgroundImage:[UIImage imageNamed:"un_selected.png"]];
            secondButton.selected = NO;
            [secondButton setBackgroundImage:[UIImage imageNamed:"un_selected.png"]];
        } else {
            [sender setBackgroundImage:[UIImage imageNamed:"un_selected.png"]];
        }

    }

編集1:

UISegmentedControl を試してみましたが、探しているものに対して十分にカスタマイズできないようです。理想的には、ボタンは次のようになります: http://i.stack.imgur.com/LPwoR.jpg

ボタンの背景画像が変更されます

4

2 に答える 2

5

これに使用する必要がありますUISegmentControl。それがまさにあなたが探している機能です。これに関するアップルのドキュメントは次のとおりです

これは、UISegmentControl.

例:-

NSArray *itemArray = [NSArray arrayWithObjects: @"One", @"Two", @"Three", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(35, 200, 250, 50);
segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
于 2012-12-04T18:34:16.877 に答える
0

forループでこのタスクを実行するだけです。最初に画像をすべてのボタンに設定してから、選択した画像の画像を変更します。

于 2012-12-04T19:07:39.693 に答える