2014-04-18 5 views
0

저는 장치의 한면에서 다른면으로가는 작은 가로 막대가 있습니다. 사용자가이 막대를 누르면 나는 그녀를 키우고 싶습니다. 내가 바를 한 모든 테스트는 아래쪽으로 자랍니다. 원점을 바꿨을 때 .y 및 size.height 바는 너무 빨리 움직여 새로운 위치로 이동 한 다음 바른 위치로 아래쪽으로 자랍니다. 애니메이션을 부드럽게 성장시킬 수는 없습니다.UIView 성장 애니메이션

예제 코드 :

__weak typeof(self) weakSelf = self; 

int sizeToGrow = 100; 
CGRect barFrame = CGRectMake(weakSelf.frame.origin.x, 
          weakSelf.frame.origin.y - sizeToGrow, 
          weakSelf.frame.size.width, 
          weakSelf.frame.size.height + sizeToGrow); 

[UIView animateWithDuration:0.7 
         delay:0 
        options: UIViewAnimationOptionCurveEaseOut 
       animations:^{ 
        weakSelf.frame = barFrame; 
       } 
       completion:^(BOOL finished){ 
        NSLog(@"Done!"); 
       }]; 
+0

당신이'UIViewAnimationOptionCurveLinear'을 대신 시도해 봤어 :

은 옵션없이 애니메이션이 선형이 될 것입니다 그런 식으로 그것을 시도? – Taum

+0

예, 모든 애니메이션 옵션을 시도했습니다 = S – tschleuss

답변

0

시간 이상이 애니메이션이 더 점진적으로해야 만듦으로써.

2.0f 초의 값을 사용해보십시오.

[UIView animateWithDuration:0.7 
         delay:0 
        options:0 
       animations:^{ 
        weakSelf.frame = barFrame; 
       } 
       completion:^(BOOL finished){ 
        NSLog(@"Done!"); 
       }]; 
+0

시도했습니다. 그러나 2 초 위의 코드는 막대가 빠르게 아래로 성장한 다음 천천히 위로 이동합니다. 아주 이상한 행동. – tschleuss

+0

그것은 일했다, 고마워 .. 나는 진짜 문제가 그라디언트 레이어를 함께 성장시키는 내 layoutSubviews 메서드에 있음을 깨달았다.이 버그는 그라디언트 레이어에서 발생하지만 UIView에서는 발생하지 않는다. – tschleuss