Изменение фрейма UIWebView без изменения размера контента - PullRequest
0 голосов
/ 28 мая 2011

Я пытаюсь анимировать удаление UIWebview с экрана. Я использую блок анимации, чтобы установить высоту фрейма равной 0. Это нормально, проблема в том, что размер содержимого веб-представления сразу же принимает новую высоту фрейма. Таким образом, содержимое исчезает, а фон исчезает. Как я могу остановить это? Вот мой блок анимации.

// Change frame height.
[UIView animateWithDuration:1.0f
                 animations:^ {
                     // Animate the frame to the full height
                     self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, 0);
                 }
 ];

Спасибо

1 Ответ

1 голос
/ 28 мая 2011

Так что, если вы хотите, чтобы контент оставался там, где он есть, вам, вероятно, придется «обмануть» это.

Apple делает это самостоятельно во многих переходах - если вы перейдете в режим медленной анимации на симуляторе iOS или в Mac OS, вы сможете увидеть, как это работает. К сожалению, UIWebView очень ограничен в области настройки ... единственное свойство, которое управляет масштабированием, это значение scalesToFit.

Другой подход будет заключаться в том, чтобы захватить UIWebView в качестве изображения, заменить веб-просмотр этим изображением (для пользователя это без проблем), а затем выполнить анимацию на самом изображении. Поскольку вы просто меняете рамку прямого изображения, вы не столкнетесь ни с одной из этих проблем (вы также можете изменить эффект анимации: если вы масштабируете изображение, чтобы соответствовать рамке, содержимое будет «сжато», или Вы можете просто обрезать его).

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