2013-03-28 3 views
2

다소 이상한 문제가 있습니다. 나는 UITextField 있습니다. 이 TextField는 버튼을 누를 때 크기가 조절됩니다. 이를 위해 먼저 다음을 수행했습니다.UITextField가 bounds.size.width의 keyPath를 사용하여 CABasicAnimation 중에 잘리는 경우

CGRect newbounds = originalBounds; 
newbounds.size.width = newbounds.size.width/2; 

[UIView beginAnimations:nil context:nil]; 
self.textField2.bounds = newbounds; 
[UIView commitAnimations]; 

쉽고 효과적입니다. 이제 애니메이션을 조금 더 제어하려고합니다.

CGRect newbounds = originalBounds; 
newbounds.size.width = newbounds.size.width/2; 

CABasicAnimation *animShrink = [CABasicAnimation animation]; 
animShrink.keyPath = @"bounds"; 
animShrink.toValue = [NSValue valueWithCGRect:newbounds]; 
animShrink.duration = 0.5; 
animShrink.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
animShrink.delegate = self; 

[self.textField2.layer addAnimation:animShrink forKey:@"shrink"]; 

그리고에서 볼 수 있듯이 나는 애니메이션 중에 클리핑 문제로 실행하면 즉 : http://coldstorage.macbonsai.com/public/cabasic_animation_clipping.png를 (I "필요 이후 최소 10 다음 사용 CABasicAnimation에 내가 다음 단계를 올라갈 것을해야 할 일 이미지를 게시하는 평판 "Stackoverflow 당).

CGRect newbounds = originalBounds; 
newbounds.size.width = newbounds.size.width/2; 

CABasicAnimation *animShrink = [CABasicAnimation animation]; 
animShrink.keyPath = @"bounds.size.width"; 
animShrink.fromValue = [NSNumber numberWithFloat:originalBounds.size.width]; 
animShrink.toValue = [NSNumber numberWithFloat:newbounds.size.width]; 
animShrink.duration = 0.5; 
animShrink.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
animShrink.delegate = self; 

[self.textField2.layer addAnimation:animShrink forKey:@"shrink"]; 

는 여전히 같은 문제가 발생했습니다

그래서 나는 애니메이션의 다음 버전을 시도했다. 이 시점에서 나는 UITextField에서 모든 제약 조건을 제거하고 두 CABasicAnimation 버전을 시도했습니다. 같은 문제. 이 시점에서 나는 뭘 해야할지 모르겠다. 어떤 도움이라도 대단히 감사하겠습니다.

미리 감사드립니다.

+0

이 문제를 해결하기 위해 관리 했습니까? 정확히 같은 문제가 있습니다. –

답변

0

단추의 스타일을 UITextBorderStyleNone으로 변경하면 잘리지 않습니다.

내 생각에 스타일이 UITextBorderStyleRoundedRect 인 경우 Apple은 "둥근 rect"이미지가있는 단추에 UIImageView를 추가하기 만합니다. 따라서 iOS에서 버튼의 레이어에 애니메이션을 적용하면 해당 하위 뷰가 함께 애니메이션되지 않습니다. 모든 하위 레이어를 명시 적으로 애니메이션화해야합니다.

관련 문제