2013-09-03 4 views
0

나는 iOS에 대해 매우 새로운 것이므로 많은 것을 알지 못합니다. 내가 UIView (및 childviews)를 만드는 방법을 알고하지만 난 UIView에서 상속하는 클래스를 만들고 initWithFrame 방법으로 파단을 약 drawRect누구나 drawrect와 context animation을 설명 할 수 있습니까?

모른다. subViews을 추가 한 후 CGContext을 사용하여 NSString을 그리고 5 초 후에보기 밖으로 이동하고 싶습니다.

누구든지 drawRect을 호출하고 이동하는 방법을 설명 할 수 있습니까?

답변

0

한 가지 방법은 문자열을 그리고 NSTimer을 시작하는 것입니다. 5 초 타이머를 시작하고 발동하면 움직일 수 있습니다.

-drawRect:이 호출 될 때 -보기를 업데이트해야 할 때마다 호출됩니다. 보기가 OS에 의해 처음 표시 될 때 호출됩니다. 그런 다음 크기 나 모양이 변경되거나 코드에서 [myView setNeedsDisplay:YES]을 호출하면 OS가이를 업데이트하도록 알려줍니다.

+0

감사합니다. 내 말은, 직접 드로잉을 호출 (오버라이드)하거나 NSTimer를 사용하여 문자열을 그릴 필요가 없다는 뜻입니까? – user1471568

+0

'-drawRect :'메소드에서 처음에 문자열을 그리고 타이머를 시작합니다. 타이머가 작동하면 타이머가 작동했음을 알 수 있도록 상태를 변경하십시오. 그런 다음'-setNeedsDisplay : YES'를 호출하면'-drawRect :'메소드가 다시 호출됩니다. 상태가 다르다는 것을 알게되면 애니메이션을 시작할 수 있습니다. – user1118321

1

이 코드는 _content에 이전에 저장 한 NSString 그리는 데 도움이 : 당신이 전화를 할 것입니다

- (void)drawRect:(CGRect)rect{ 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [_content drawInRect:rectForFrame 
       withFont:[UIFont fontWithName:kFontMedium size:15.0f] 
      lineBreakMode:NSLineBreakByWordWrapping 
       alignment:NSTextAlignmentCenter]; 
} 

이 요소가 밖으로 밀어 수 있도록를 NSTimerUIView가 (아마로 나타났다 당신의 후 지연을 사용하여 performSelector:withObject:afterDelay:) 을 작성하려는 CGRect의 속성을 변경하십시오. UIView을 업데이트하는 특정 간격으로 NSTimer에 의해 호출 될 메소드를 설정할 수 있습니다.

- (void)updateView{ 

    //create a rect 
    rectForFrame = CGRectMake....; 
    [self setNeedsDisplay]; 
}