Как создать «растягиваемый» UIView - PullRequest
2 голосов
/ 16 июля 2011

У меня есть UIView, который содержит другой UIView.Внешний UIView рисует границу вокруг внутреннего UIView через drawRect.(Граница слишком сложна для рисования через свойства CALayer.)

В настоящее время, когда я анимирую изменение размера внешнего UIView, его метод drawRect вызывается один раз в начале анимации, и результатрастягивается или сжимается.Это выглядит не очень хорошо.

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

Ответы [ 3 ]

1 голос
/ 16 июля 2011

Вы должны изменить тип содержимого представления на:

your_view.contentMode = UIViewContentModeRedraw;

И он будет перерисовываться каждый раз, когда меняется его кадр.

0 голосов
/ 18 октября 2011

Я закончил тем, что добавил подпредставления с масками авторазмера, которые сохранили их правильное положение во время анимации.

0 голосов
/ 16 июля 2011

Вам необходимо отправлять [UIView setNeedsToDisplay] в представление для каждого изменения размера кадра, вы можете попробовать переопределить метод setFrame: как

- (void)setFrame:(CGRect)r
{
    [super setFrame:r];
    [self setNeedsToDisplay];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...