2

私はObjective Cが初めてで、実行時に作成されたUIButtonとUIImageViewを使用して、UIImageViewのアニメーションを画面上のある設定位置から画面上の別の設定位置に切り替えようとしています。UIButton を押すと、UIImageView がある場所から別の場所にアニメーション化し、UIButton の setBackgroundImage が別の imageNamed: 状態に切り替わるようにします。

どんな助けでも大歓迎です!

// UIImageView - Roof Panel Creation
roofPanel = [[UIImageView alloc]initWithFrame:CGRectMake(300, 400, 400, 400)];
[roofPanel setImage:[UIImage imageNamed:@"roof-panel.png"]];
[self.view addSubview:roofPanel];

// UIButton - Panel Lift Button Creation
panelLiftButton = [[UIButton alloc]initWithFrame:CGRectMake(722, 300, 70, 50)];
[panelLiftButton setImage:[UIImage imageNamed:@"panel-lift-button.png"] forState:UIControlStateNormal];
[self.view addSubview:panelLiftButton];
4

1 に答える 1

0

まず、Objective C へようこそ。この素晴らしい言語でのコーディングをお楽しみいただけます...

以下のコードに示すように、UIControlStateSelected のイメージを UIButton に設定してから、ターゲット (UIButton の IBAction) を追加する必要があります...

UIControlStateSelected と UIControlStateNormal の画像が異なる必要があることを確認してください。

    panelLiftButton = [[UIButton alloc]initWithFrame:CGRectMake(722, 300, 70, 50)];
    [panelLiftButton setImage:[UIImage imageNamed:@"panel-lift-button.png"] forState:UIControlStateNormal];
    [panelLiftButton setImage:[UIImage imageNamed:@"panel-lift-button_ON.png"] forState:UIControlStateSelected];
    [panelLiftButton addTarget:self action:@selector(toggleImage:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:panelLiftButton];

次に、次のような関数を作成します.....

-(IBAction)toggleImage:(id)sender
{
    UIButton * btn = (UIButton*)sender;
    btn.selected = ! btn.selected;
    if (btn.selected)
    {
        [UIView animateWithDuration:0.3 animations:^{
            [roofPanel setFrame:CGRectMake(0, 0, 400, 400)];//here you can set your desired frame.
        }];
    }
    else
    {
        [UIView animateWithDuration:0.3 animations:^{
            [roofPanel setFrame:CGRectMake(300, 400, 400, 400)];//here you can set your original frame.
        }];

    }

}

Objective C でコーディングをお楽しみください。

于 2013-03-15T10:28:50.830 に答える