반응형
UIView 객체가 생성될 때 뷰들이 준비(viewDidLoad)되고 난뒤 그려줄 때 DrawRect가 불려진다.
화면에 그려주고 싶은게 있으면 보통 DrawRect에서 그려주는데, setNeedsDisplay로 DrawRect가 다시 불릴 수 있도록 이벤트를 던질 수 있다.
다만, Event Driven형식으로 동작하는 iOS에서는 setNeedsDisplay를 사용하면 즉시 drawRect가 동작되지 않는다. 이 녀석은 다시 그려야 할 것이 있다는 Flag만 설정 해 주고, 다음 실행 루프에서 drawRect가 동작하게 된다.
* setNeedsDisplay
Marks the receiver’s entire bounds rectangle as needing to be redrawn.
Discussion
You can use this method or the setNeedsDisplayInRect: to notify the system that your view’s contents need to be redrawn. This method makes a note of the request and returns immediately. The view is not actually redrawn until the next drawing cycle, at which point all invalidated views are updated.
출처 : Apple Document.
* setNeedsDisplay:
Controls whether the receiver's entire bounds rectangle is marked as needing display.
- (void)setNeedsDisplay
Description
By default, geometry changes to a view automatically redisplays the view without needing to invoke the drawRect: method. Therefore, you need to request that a view redraw only when the data or state used for drawing a view changes. In this case, send the view the setNeedsDisplay message. Any UIView objects marked as needing display are automatically redisplayed when the application returns to the run loop.
출처 : http://www.picksourcecode.com/ps/ct/16683.php
화면에 그려주고 싶은게 있으면 보통 DrawRect에서 그려주는데, setNeedsDisplay로 DrawRect가 다시 불릴 수 있도록 이벤트를 던질 수 있다.
다만, Event Driven형식으로 동작하는 iOS에서는 setNeedsDisplay를 사용하면 즉시 drawRect가 동작되지 않는다. 이 녀석은 다시 그려야 할 것이 있다는 Flag만 설정 해 주고, 다음 실행 루프에서 drawRect가 동작하게 된다.
* setNeedsDisplay
Marks the receiver’s entire bounds rectangle as needing to be redrawn.
Discussion
You can use this method or the setNeedsDisplayInRect: to notify the system that your view’s contents need to be redrawn. This method makes a note of the request and returns immediately. The view is not actually redrawn until the next drawing cycle, at which point all invalidated views are updated.
출처 : Apple Document.
* setNeedsDisplay:
Controls whether the receiver's entire bounds rectangle is marked as needing display.
- (void)setNeedsDisplay
Description
By default, geometry changes to a view automatically redisplays the view without needing to invoke the drawRect: method. Therefore, you need to request that a view redraw only when the data or state used for drawing a view changes. In this case, send the view the setNeedsDisplay message. Any UIView objects marked as needing display are automatically redisplayed when the application returns to the run loop.
출처 : http://www.picksourcecode.com/ps/ct/16683.php
반응형
'기술 > iOS' 카테고리의 다른 글
NSXMLParser 이용 중 '<' 앞의 whiteSpace가 문제 될 때. (0) | 2012.02.23 |
---|---|
xCode 4.2에서 sizeWithFont:constrainedToSize:lineBreakMode: 사용시 주의점. (0) | 2012.02.20 |
[NSString alloc] initWithXXXX 시에 retainCount 가 2147483647 나오는 이유. (0) | 2012.02.07 |
Lion에서 사용자 라이브러리 폴더 보이게 하기. (0) | 2012.02.07 |
iBooks Author & iTunes U (0) | 2012.01.20 |