1

私が書いたviewDidLoadメソッドでアニメーションの概念を書きました:

    scaleFactor=2;
    angle=180;
    CGRect frame = CGRectMake(10,10,45,45);
    UIView *box;
    box=[[UIView alloc] initWithFrame:frame];
    box.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"images673.png"];
    [self.view addSubView:box];

// このコードは、画面内のオブジェクトのタッチ イベント用です // オブジェクトの移動のために、以下に示すメソッドを作成しました。

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
        {
        UITouch *touch=[touches anyObject];
        CGPoint location=[touch locationInView:self.view];
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDelegate:self];
        [UICiew setAnimationDuration:1];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        box.center=location;
        [UIView commitAnimations];
        }

// そして、別のクラス ファイルに移動する必要があるボタンを作成しました // 一般的なナビゲーションの原則を作成しました

-(IBAction)settings:(id)sender
{
aScreen *abc=[[aScreen alloc]init];
[self.navigationController pushViewController:abc animated:YES];
[abc release];
}

画面をタップしたところにオブジェクトが移動するようになりましたが、ボタンをタップすると、画像がボタンの上に配置されません。どうすればよいでしょうか。助けてください。画面をタップするまで移動します。しかし同時に、ボタンを取得し、viewcontroller にボタン イベント アクションを記述しました。ボタンをタップすると、画像がボタンの上に移動しません。

私がやりたいことは、ボタンをタップすると、画像がボタンにドロップされ、次のビューコントローラーが表示されるはずです。誰かがそうするのを手伝ってくれますか? ボタンをタップしたときに画像がドロップしたときに次の画面に移動するにはどうすればよいですか?

4

2 に答える 2

0

コードを見ずに問題を完全に理解しているかどうかはわかりませんが、このようなことはできませんか?

-(ibaction)buttonevent:(id)sender{
cgrect frame = image.frame;
frame.origin.x = button.frame.x;
frame.origin.y = button.frame.y;
image.frame = frame;
image.alpha = 0;

[self pushviewcontroller:newViewcontroller animated:yes];
}
于 2012-06-08T10:22:14.440 に答える
0

こんにちは、私がチェックしたこのコードを試してください。ボタンをチェックし、ドラッグしている画像が交差してから、次の画面に移動するメソッドを起動すると、これは私にとってはうまくいきます

// Handles the continuation of a touch.
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{  
//NSLog(@"touchesMoved");
UITouch *touch = [touches anyObject];
if ([touch view] == mKey) {

    NSUInteger touchCount = 0;

    // Enumerates through all touch objects
    for (UITouch *touch in touches) {
        // Send to the dispatch method, which will make sure the appropriate subview is acted upon
        [self dispatchTouchEvent:[touch view] toPosition:[touch locationInView:self.view]];
        touchCount++;
    }

}



}

// Checks to see which view, or views, the point is in and then sets the center of each moved view to the new postion.
// If views are directly on top of each other, they move together.
-(void)dispatchTouchEvent:(UIView *)theView toPosition:(CGPoint)position
{

// Check to see which view, or views,  the point is in and then move to that position.

if (CGRectContainsPoint([mKey frame], position)) 
{
     NSLog(@"touchesMoved");
    mKey.center = position;

}


if(CGRectIntersectsRect([mKey frame], [inVisible frame]) && k==0)
{
    self.view.userInteractionEnabled=NO;
    NSLog(@"thirdPiew frame");

    [inVisible setHighlighted:YES];
    [inVisible setShowsTouchWhenHighlighted:YES];
    k=1;
    [self performSelector:@selector(modalPresentationButtonPressed:)];    

}
}
于 2012-07-25T05:14:05.537 に答える