iPad - Как переместить и изменить размер этикетки - PullRequest
1 голос
/ 07 апреля 2011

Я пытаюсь переместить и изменить размер ярлыка, но в результате происходит немедленное изменение размера ярлыка, после чего он перемещается в позицию. Сначала я попробовал просто закомментированную строку lbl.frame. Далее я нашел этот вопрос:

Как анимировать при изменении размера UIView

И добавил весь другой код, кроме contentMode. Это сделало то, что я хотел, но шрифт метки не изменился, так как метка уменьшилась. (Я ставлю галочку, чтобы соответствовать XIB). Наконец, добавление строки contentMode дало мне тот же результат, что и моя исходная линия фрейма - сразу же уменьшите размер, прежде чем они оживят движение.

    lbl.contentMode = UIViewContentModeRedraw;
    [UIView animateWithDuration:1.0 delay:0.0
                        options:(UIViewAnimationOptionAllowUserInteraction)
                     animations:^{
                         //lbl.frame = CGRectMake(x, mStartingLine.frame.origin.y+mStartingLine.frame.size.height, 100, 100);
                         CGRect theBounds = lbl.bounds;
                         CGPoint theCenter = lbl.center;
                         theBounds.size.height = 100;
                         theBounds.size.width = 100;
                         theCenter.y = mStartingLine.frame.origin.y+mStartingLine.frame.size.height+50;
                         theCenter.x = x;
                         lbl.bounds = theBounds;
                         lbl.center = theCenter;
                     }
                     completion:nil
     ];

1 Ответ

0 голосов
/ 17 мая 2012

Я подозреваю, что функция автоматического изменения размера текста не работает с Core Animation.

Я бы предложил сделать так, чтобы установить для метки ее окончательный размер (с использованием ее границ), а затем применить к ней преобразование.это уменьшает его до его начального размера.Конечный эффект этих вещей заключается в том, что он должен оставаться в том же видимом размере.

Наконец, используйте animateWithDuration: animations: чтобы установить преобразование представления обратно в преобразование идентичности, чтобы оно увеличивалось до нового размера.

Я не знаю, какие артефакты рисования это вызовет - вам придется попробовать.

...