2013-04-23 1 views
2

내 애니메이션 이후에 UIButton에 문제가 있습니다. 제가 그 단계를 설명해 드리겠습니다.애니메이션 후 UIButton의 컨텐츠가

하나의 버튼이 있으며 내부에 이미지가 있습니다. 버튼을 탭하면 프레임이 큰 폭으로 움직입니다. 프레임이 올바른 크기가되면 텍스트가 추가됩니다 (왼쪽에는 이미지가 있고 오른쪽에는 텍스트가 있음).
처음으로 애니메이션을 시작하면 이미지가 완전히 왼쪽이고 이유를 모르겠지만 초기 프레임으로 돌아 가면 내 이미지가 완전히 UIButton에서 벗어 났지만 여전히 이유는 알 수 없습니다. 더 해설 몇 가지 화면이 있습니다

:

http://pastebin.com/6MQ5xyA8

(I은 10 점 명성없이 하나 개의 링크 이상을 붙여 넣을 수 없습니다 죄송합니다) 그리고 이것은 내 코드입니다 :

// Extand 
CGRect loginSize = self.nvButtonConnect.frame; 
loginSize.size.width = 297; 
loginSize.size.height = 48; 
CABasicAnimation *sizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"]; 
sizeAnimation.fromValue = [NSValue valueWithCGRect:self.nvButtonConnect.frame]; 
sizeAnimation.toValue = [NSValue valueWithCGRect:loginSize]; 
[sizeAnimation setRemovedOnCompletion:NO]; 
sizeAnimation.fillMode = kCAFillModeForwards; 

// Go back (in another method) 
CGRect loginSize = self.nvButtonConnect.frame; 
loginSize.size.width = 48; 
loginSize.size.height = 48; 
CABasicAnimation *sizeAnimation = [CABasicAnimation animationWithKeyPath:@"bounds"]; 
sizeAnimation.fromValue = [NSValue valueWithCGRect:self.nvButtonConnect.frame]; 
sizeAnimation.toValue = [NSValue valueWithCGRect:loginSize]; 
[sizeAnimation setRemovedOnCompletion:NO]; 
sizeAnimation.fillMode = kCAFillModeForwards; 

혹시 생각하세요?
사용자 정의 contentEdgeInset, TitleEdgeInset, ImageEdgeInset으로 시도했지만 아무 것도 작동하지 않습니다.

+0

일반 애니메이션 블록 대신에 'CABasicAnimation'을 사용하는 이유가 있습니까? –

답변

1

보기의 좌표계의 원점을 옮겨 놓는 boundsframe 값을 설정하고 있습니다. bounds을 일관되게 사용하면 제대로 작동합니다.

0

바로 내가 몇 시간 후에 그것을 보았다 ... 초보자 실수 : ( 나는 그것에 대해 배우기 위해 정규 애니메이션 대신에 CABasicAnimation을 주로 사용하고있다. [UIView animateWithDuration : completion :]는 배우기 쉽고 원했다. CAKeyframeAnimation과 같은 것들로 커스텀 애니메이션을 만드는 법을 알고 싶습니다. 지금부터 프레임 대신 경계를 항상 사용하는 법을 배웁니다.

답장을 보내 주셔서 감사 드리며 늦어서 죄송합니다.

관련 문제