2012-08-14 2 views
0

이미지를 오른쪽으로 이동 한 다음 버튼을 놓을 때 정지하는 애니메이션이 있습니다. 서로 다른 시간대에 이미지의 프레임이 필요하므로 myImageView.frame = CGRectMake 대신 CGRect 변수를 사용했습니다. 그러나 평소처럼 멈추는 대신에 놓을 때마다 변수 이미지를 원래 위치로 되돌려 놓습니다.CGRectMake 대신 CGRect Variable을 사용하면 애니메이션이 작동하지 않습니다.

if (myInt == 2) { 
    MyCGRect = CGRectMake(myImageView.frame.origin.x,myImageView.frame.origin.y,18,42); 
} else { 
    MyCGRect = CGRectMake(myImageView.frame.origin.x,myImageView.frame.origin.y,35,28); 
} 

-(IBAction)holdToMakeImageMove:(id)sender 
{ 
//!!!!!This Works!!!!!! 
myImageView.frame = CGRectMake(myImageView.frame.origin.x,myImageView.frame.origin.y,18,42); 

//!!!!!!THIS doesnt work 

myImageView.frame = MyCGRect; 

//...animation 

} 
+3

디버거에서 'MyCGRect'값을 확인 했습니까? 아마 'frame'값과 같은가? – Stream

+0

@Stream 나는 그렇게했고 myCGRect는 항상 같은 지점에 머무르는 것으로 나타났습니다. myImageView.frame.origin.x가 있으면 변경해서는 안됩니까? –

답변

-1

예를 들어,이 코드는 저에게 효과적입니다. 버튼 프레임을 (0,800,50,50)에서 (0,0,100,100)으로 변경하십시오.

@interface ViewController() 
... 
@property (nonatomic, assign) CGRect myRect; 
... 
@end 

@implementation ViewController 
... 
@synthesize myRect = _myRect; 
... 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [btn setFrame:CGRectMake(0, 800, 50, 50)]; 
    [btn addTarget:self action:@selector(avvia:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:btn]; 

    self.myRect = CGRectMake(100, 0, 100, 100); 
} 
... 
- (void)avvia:(id)sender { 
    ((UIButton *)sender).frame = self.myRect; 
} 
... 
@end 
+0

이미지가 변경되었지만 이미지가 계속 드래그 되었습니까? –

+0

WhiteTiger는 복잡하게 만듭니다. Tanner 당신이 이메일을 보내면 당신의 코드를 고칠 수 있다면 .h와 .m 만 있으면된다. (그러나 전체 프로젝트가 테스트와 디버그에 도움이된다.) – Comradsky

+0

죄송 합니다만, 코드 만 입력하면 사용 예제를 완료했습니다. – WhiteTiger

관련 문제