动画嵌入式UIWebView框架属性

时间:2011-04-15 12:58:43

标签: animation uiview uiwebview frame

经过长时间的搜索没有结果, 也许有人知道以下问题的答案:

我有一个UIView,其中包含一个UIWebView作为子视图。 UIView只是一个包装器,因此我可以在UIWebView上放置按钮等。 我现在想要同时调整UIView和UIWebView的大小调整和重新定位的动画。我希望它看起来像只是一个被调整大小的UIWebView。 我尝试了各种动画技术:块/提交,隐式/显式, 例如:

[UIView beginAnimations:@"zoomIn" context:nil];  
[UIView setAnimationDuration:1.0];  

myWrapperUIView.frame = CGRect(0.0, 0.0, 500.0, 500.0);  
myUIWebView.frame = CGRect(0.0, 0.0, 500.0, 500.0);

[UIView commitAnimations];

但我总是得到UIView动画的结果,但UIWebView内部只是立即切换到新框架,所以如果我从一个更大的框架缩放,UIWebView周围会有空的空间,在动画期间缩小。

我也为UIWebView尝试过嵌入式动画,但结果相同。

我的问题是:
有没有办法同时动画两个视图,以便在每个时间点UIWeb将填充UIView?

谢谢你,
迈克尔

2 个答案:

答案 0 :(得分:1)

使用CGAffineTransform并使用transform属性缩放视图,它将完成工作。

myWrapperUIView.frame = CGRect(0.0, 0.0, 500.0, 500.0);  
myUIWebView.frame = CGRect(0.0, 0.0, 500.0, 500.0);
self.window.userInteractionEnabled =NO;
myWrapperUIView.transform = CGAffineTransformMakeScale(0.01, 0.01);
myUIWebView.transform = CGAffineTransformMakeScale(0.01, 0.01);
[UIView animateWithDuration:ANIMATIONDURATION animations:^{
    myWrapperUIView.transform = CGAffineTransformMakeScale(1.0, 1.0);
    myUIWebView.transform = CGAffineTransformMakeScale(1.0, 1.0);
    }completion:^(BOOL finished) {
      self.window.userInteractionEnabled = YES;
}];

希望这有帮助,

答案 1 :(得分:0)

您必须为网络视图设置自动调整大小。

http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

@property(nonatomic) UIViewAutoresizing autoresizingMask