0

写真を作成するために nsarray 文字列から渡される画像 (clubcow.png) があります。次に、facedowncow は画像を表します。ボタンがタップされたときに facedowncow を位置 (100,100) に移動するボタンを作成する方法を考えていました。ヒントをいただければ幸いです。また、このコードには他にもあります。何が起こっているのかを理解するために重要な部分を投稿しただけです。

cardKeys = [[NSArray alloc] initWithObjects:@"clubcow",  nil];
currentName = [NSMutableString stringWithFormat:@"%@.png", [cowsShuffled objectAtIndex:currentcow]];
faceDowncow = (UIImageView *)[self.view viewWithTag:1];
faceDowncow.userInteractionEnabled = YES;
4

2 に答える 2

4

を作成UIButtonし、View Controller のビューに追加することから始めます。

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(0, 0, 100, 20);
[button setTitle:@"Tap Me" forState:UIControlStateNormal];
[button addTarget:self action:@selector(animateImage:)
 forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];

次に、このボタンを、faceDowncowオブジェクトをアニメーション化する関数にリンクします。faceDowncow次の関数が簡単に参照できるように、View Controller のプロパティとして追加できます。

- (void)animateImage:(UIButton *)sender {
    [UIView animateWithDuration:0.2
     animations:^{
         // change origin of frame
         faceDowncow.frame = CGRectMake(100, 100, faceDowncow.frame.size.width, faceDowncow.frame.size.height);
     } completion:^(BOOL finished){
         // do something after animation
     }];
}
于 2012-09-10T22:51:37.377 に答える
1

まず、このコードはビュー コントローラーのサブクラスからのもので、牛はサブビューのようです。その場合、常にタグで取得するのではなく、プロパティを用意する必要があります。ストーリーボードのシーン/ニブでインスタンス化されている場合、アウトレットをサブクラスのプロパティ/ivar に簡単に接続できます。

必要なことを行う最も簡単な方法は、ボタンを作成し、ターゲット アクションを使用して、タップされたときにビュー コントローラーのメソッドを呼び出すことです。メソッド本体で、牛への参照を取得し、そのフレーム プロパティを次のように設定します。

[faceDowncow setFrame: CGRectMake(100,100,faceDowncow.bounds.size.width,faceDowncow.bounds.size.height)];

ターゲット アクションの仕組みがわからない場合は、この問題に関する Apple のドキュメントを読むことをお勧めします。ボタンを取得し、1 つのメソッドを呼び出して、特定のメソッドを呼び出すイベントを指定し、そのメソッドを実装するだけです。

于 2012-09-10T22:52:17.390 に答える