【发布时间】:2011-12-11 19:39:13
【问题描述】:
我有一个视图,其中包含一个附加到 GestureRecognizer 的 UIWebView(带有文本图像等)。一旦 webView 被“点击”,它就会翻转并在这个 web 视图上显示更新的文本、图像等。我有与此识别器相关的操作如下:
- (IBAction)flipWebViewGestureRecognizer:(id)sender
{
// isFrontView is boolean to determine if card is front or back
if(self.isFrontOfView)
{
self.isFrontOfView = NO;
[UIView transitionWithView: self.imageView
duration: 1.0
options: UIViewAnimationOptionTransitionFlipFromTop
animations: ^{ [self loadBack]; }
completion: nil];
}
else
{
self.isFrontOfView = YES;
[UIView transitionWithView: self.imageView
duration: 1.0
options: UIViewAnimationOptionTransitionFlipFromTop
animations: ^{ [self loadFront]; }
completion: nil];
}
}
方法loadFront和loadBack如下(html本身被缩短到最小):
- (void) loadFront
{
NSString *html = @"<p>Front Of Card</p>";
[self.viewWebView loadHTMLString:html baseURL:nil];
}
- (void) loadBack
{
NSString *html = @"<p>Front Of Card</p> <br /> <p>as well as back of card<p>";
[self.viewWebView loadHTMLString:html baseURL:nil];
}
从功能的角度来看,这很有效。卡片可以翻转,网络视图会更新为新的 HTML 文本。但是,实际 Web 视图的更新发生在卡片已经完成翻转之后(在动画之后而不是在期间)。一旦视图动画完成翻转,而不是之后立即加载,我需要做什么才能让 viewWebView 已经加载更新的 html。
【问题讨论】:
标签: objective-c xcode uiwebview ios5 uiviewanimation