1

こんにちは私はiPhone開発の初心者です。2つのビューが互いに表示されているかどうかを教えてください。スーパービューをクリックするとドラッグされ、サブビューをクリックするとドラッグされます。誰か助けてもらえますか?

これが私のコードです:

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *aTouch = [touches anyObject];
    //UITouch *aTouchSuper = [touches anyObject];
    CGPoint location = [aTouch locationInView:self.view];

    //CGPoint locationSuper=[aTouchSuper locationInView:viewForTouch];


  [UIView beginAnimations:@"Dragging A DraggableView" context:nil];




    ////////////////////////
    //if(location.x>50 &&location.x<300 ){
//      viewForTouch.frame = CGRectMake(location.x,0, 
//                                      viewForTouch.frame.size.width, viewForTouch.frame.size.height);
//    
//
//
//  }
    UIView *subview = [self.view hitTest:[[touches anyObject] locationInView:self.view] withEvent:nil];

    NSLog(@"%i",subview.tag);
    if (location.x <= 50) 
    {
        location.x = 50;
    }
    if (location.x >= 300) 
    {
        location.x = 300;
    }
    if(subview.tag==12){

        viewForTouchInner.frame = CGRectMake(location.x,0, 

                                             viewForTouchInner.frame.size.width, viewForTouchInner.frame.size.height);
    }
    if(subview.tag==11) 
    {
        viewForTouch.frame = CGRectMake(location.x,0, 
                                        viewForTouch.frame.size.width, viewForTouch.frame.size.height);
    }



    ///////////////////////
    //if(viewForTouchInner.hidden=FALSE){
//  
//      
//      
//      
//      location.x=0;
//      NSLog(@"%f",location.x);
//      viewForTouchInner.frame = CGRectMake(location.x,0, 
//          
//                                      viewForTouch.frame.size.width, viewForTouch.frame.size.height);
//      
//  
//  }
        [UIView commitAnimations];
    [buttonForMove addTarget:self action:@selector(Show) forControlEvents:UIControlEventTouchUpInside];
}
4

1 に答える 1

0

これが、iOSのスーパービューでビューをドラッグするための私のコードです。サブビューにボタンがあるとします。このボタンをタップすると、このアクションが呼び出されます。サブビューがx == 0に配置されているかどうかを確認し、x = 260にアニメーション化します。その逆も同様です。また、フレームワークQuartzCore/QuartzCoreと#importを追加する必要があります。 action.setAnimationDurationの.mファイルのQuartzCore/QuartzCore.hは、ドラッグの期間を示します-(IBAction)listButtonTapped {

    // [self.navigationController popViewControllerAnimated:YES];
    //[self.profileTableView reloadData];
    NSLog(@"ButtonTapped");
    if(profileView.frame.origin.x == 0){
        [UIView beginAnimations:@"advancedAnimations" context:nil];
        [UIView setAnimationDuration:3.0];
        CGRect aFrame = profileView.frame;
        aFrame.origin.x = 260;
        profileView.frame = aFrame;

        [UIView commitAnimations];
    }
    else{

        [UIView beginAnimations:@"advancedAnimations" context:nil];
        [UIView setAnimationDuration:3.0];
        CGRect aFrame = profileView.frame;
        aFrame.origin.x = 0;
        profileView.frame = aFrame;

        [UIView commitAnimations];


    }



}

ここに画像の説明を入力してください
ここでボタンを押すと、ビューがx位置の増加に向かってドラッグされます ここに画像の説明を入力してください

ここで画像のドラッグプロセスを終了します。白いサブビューの左側にあるボタンをもう一度押すと、x=0の位置に戻ります。お役に立てば幸いです。

于 2013-03-20T07:47:49.763 に答える