2

在我的一个项目中,我只使用了一个 UIWebView。当我用另一个内容重新加载我的 webView 时,我需要一个动画(例如翻转)......是否可以创建一个翻转动画(或类似的东西)?我必须创建一个假控制器才能得到它?解决方案?谢谢

4

2 回答 2

3

您始终可以+transitionWithView:duration:options:animations:completion:使用 Web 视图执行该方法。

[UIView transitionWithView:self.webView duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft | UIViewAnimationOptionAllowAnimatedContent animations:
^{
    [self.webView loadHTMLString:@"<strong>Hello world</strong>" baseURL:nil];
} completion:^(BOOL finished)
{

}];

这种方法基本上是一种说法:“以动画方式更改此视图的内容”。所以它拍摄当前状态的快照,执行动画(可以是翻转、卷曲等),然后插入新状态的快照。

但是请注意,我使用UIViewAnimationOptionAllowAnimatedContent了 ,这会强制动画不使用快照来获取视图的新状态,因为设置loadHTMLString不会立即更改视图,因此我们需要强制它使用视图的实时上下文而不是快照。

iOS 中的天气应用程序(7 之前)使用类似的方法在单击底部的“i”时在当前天气和其他地区/选项的选择器之间切换。

于 2013-07-14T03:44:58.313 回答
2

我认为您不需要为此创建控制器。您可以简单地添加类似的内容:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.80];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:yourView cache:YES];
[UIView commitAnimations];
于 2013-07-16T11:23:31.340 回答