Может ли кто-нибудь объяснить рисование и контекстную анимацию?

Я совершенно новый для 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], который говорит ОС, чтобы обновить его.

Другие вопросы по тегам