2010-04-25 4 views
0

하위 뷰를 사용하지 않았지만 -drawRect : 내 UIView 하위 클래스에 내 물건을 그렸습니다. 이제 저는 거기에서 몇 가지 애니메이션을하고 싶습니다.-drawRect를 사용할 때 물건에 애니메이션을 적용하는 방법 :

나는 하위 애니메이션이 없으므로 핵심 애니메이션을 사용할 수 없다고 생각합니다. 그렇다면 어떻게 움직일 수 있습니까? 초당 30 번 같은 타이머를 설정할 수 있습니까? 애니메이션 단계를 어떻게 알 수 있습니까? 애니메이션의 프레임을 계산하는 ivar를 만들면 -drawRect에서 호출 할 때 내 물건을 처리 할 수 ​​있습니까?

답변

1

정확히 할 수 있습니다 : 프레임 번호가있는 인스턴스 변수를 가지고 타이머에서 증가시킵니다. 여유를 걱정하지 않는다면 프레임 수에 속도를 곱한 다음 애니메이션에 적용 할 속성으로 설정할 수 있습니다.

이 작동하지만 crazy.YOu이 시대의 동일한 콘텐츠 hunderts을 그리고 그것의 CALayer 애니메이션을 참조합니다 TableView.I의 경우 성능 문제가 발생할 수 같은 소리
-(void)timerfunction{ 
    ++frame; 
    [self setNeedsDisplay]; 
} 

-(void)drawRect:(CGRect)rect{ 
    CGContextFillRect(UIGraphicsGetCurrentContext(),CGRectMake((2*frame)+5,5,20,20)); 
} 
1

관련 문제