Может ли кто-нибудь объяснить рисование и контекстную анимацию?
Я совершенно новый для iOS
так что я не знаю много об этом. Я знаю как сделать UIView
(и его детские взгляды), но я не знаю о drawRect
Я делаю класс, который наследует от UIView
и сделать подпредставления в initWithFrame
метод. Я хочу нарисовать NSString
с помощью CGContext
после добавления subViews
и переместите его вне поля зрения через 5 секунд.
Может ли кто-нибудь объяснить, когда drawRect
называется и как его переместить?
2 ответа
Этот код помогает вам нарисовать NSString
который был сохранен ранее в _content:
- (void)drawRect:(CGRect)rect{
CGContextRef context = UIGraphicsGetCurrentContext();
[_content drawInRect:rectForFrame
withFont:[UIFont fontWithName:kFontMedium size:15.0f]
lineBreakMode:NSLineBreakByWordWrapping
alignment:NSTextAlignmentCenter];
}
Чтобы элемент выскользнул, вы должны вызвать NSTimer
после вашего UIView
было показано (возможно с задержкой, используя performSelector:withObject:afterDelay:
) и измените атрибуты CGRect
Вы хотите написать NSString
внутри. Вы можете просто установить метод, который будет вызываться вашим NSTimer
в определенный интервал, который также обновляет UIView
,
- (void)updateView{
//create a rect
rectForFrame = CGRectMake....;
[self setNeedsDisplay];
}
Один из способов сделать это - нарисовать строку, а затем запустить NSTimer
, Запустите 5-секундный таймер, и когда он сработает, вы можете переместить его.
Что касается когда -drawRect:
называется - он вызывается всякий раз, когда необходимо обновить ваше представление. Он будет вызван, когда ОС впервые отобразит ваш вид. После этого он обычно вызывается, когда он меняет размер или форму, или когда ваш код вызывает [myView setNeedsDisplay:YES]
, который говорит ОС, чтобы обновить его.