でUIViewのアニメーションを置き換える私のコードです:はここにもタイマーアニメーション
- (CGPoint)randomPointSquare {
CGRect frame = [[self view] frame];
//CGFloat rand_x = ((float)arc4random()/(float)UINT_MAX) * (float)_window.frame.size.width;
NSInteger side = arc4random()/(UINT_MAX/4);
CGFloat offset = 0;
switch(side) {
case 0: /* top */
offset = ((float)arc4random()/(float)UINT_MAX) * (float)frame.size.width;
return CGPointMake(offset, -10);
case 1: /* bottom */
offset = ((float)arc4random()/(float)UINT_MAX) * (float)frame.size.width;
return CGPointMake(offset, frame.size.height-150);
case 2: /* left */
offset = ((float)arc4random()/(float)UINT_MAX) * (float)frame.size.height;
return CGPointMake(-10, offset);
default:
case 3: /* right */
offset = ((float)arc4random()/(float)UINT_MAX) * (float)frame.size.height;
return CGPointMake(frame.size.width+170, offset);
}
}
-(void)createNewImageView {
UIImage * image = [UIImage imageNamed:@"abouffer_03.png"];
imageView = [[UIImageView alloc] initWithImage:image];
// Add it at a random point
[imageView setCenter:[self randomPointSquare]];
[[self view] addSubview:imageView];
// Animate it into place
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:8.0f];
[imageView setCenter:CGPointMake(240, 160)];
[UIView commitAnimations];
[imageView release];
}
SOあなたが見ることができるようにUIViewのアニメーションがありますが、今私は変更してタイマーでそれを交換したいです。しかし、私はそれを行う方法を知らない。さて、もしあなたがそれを行う方法を知っていれば、imageViewがランダムな位置に作成されてから、画面の中央に移動することを忘れないようにしてください。ありがとうございます
私は実際に部品を理解していません: "あなたはそれが(240,160)になる点からオブジェクトがどれだけ離れているかを計算し、それをあなたがそれを移動させたい時間の長さです。なぜなら、画像の位置はどこがランダムな位置なので作成されたのかわからないからです。コードを開発してください。 –
あなたはそれが作成されたランダムな位置を持っています - see theLocation = [self randomPointSquare];(240,160)からの距離を計算するには、単純にxの位置とyの位置を互いに引くことができます。したがって、もしxが120であり、theLocation.yが100なら、距離はxに沿って120、yに沿って60になります。 –
はい私は理解していますが、私が必要とするのは距離と座標を計算する方法を知っていることです。私がサンプルコードを与えると理解しやすくなります:/ –