Получить изображение из uiview - PullRequest
3 голосов
/ 14 ноября 2009

Я хочу выполнить сжатую анимацию для UITableVIew. Я немного поэкспериментировал и обнаружил, что анимация работает намного быстрее, когда я сжимаю UIImageView с изображением текущего состояния табличного представления вместо того, чтобы сжимать само табличное представление.

Я взял изображение одним из методов в моем главном контроллере до анимации:

UIGraphicsBeginImageContext(mainTableView.bounds.size);

[resizeContainer.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

Работает как шарм, по крайней мере, почти. В очень редких случаях я получаю странные графические сбои, когда UIImage начинает перекрывать панель инструментов, расположенную под ним.

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

Короче говоря, мой код правильный?

Thx

Ответы [ 2 ]

0 голосов
/ 13 декабря 2010

Это ушло с iOS 4.0. Так что, думаю, это была ошибка.

0 голосов
/ 15 ноября 2009

Как вы анимировали стол? У меня не было проблем с медленной анимацией. Вот пример того, что я сделал, когда мне пришлось изменить размер таблицы:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[mainTableView setFrame:CGRectMake(0,43,320,176)];
[UIView commitAnimations];

Причина, по которой я бы предложил не просто сделать снимок экрана, но на самом деле анимировать таблицу, заключается в том, что анимация может начаться, поскольку таблица все еще прокручивается. Например, пользователь случайно щелкнул по столу, когда он начал анимироваться, тогда у вас будет переход в новое состояние, когда вы исчезнете снятый вами «снимок экрана».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...