使用动画调整 UIWebView 大小时的问题
我已经为此苦苦挣扎了一段时间,但还没有找到解决方案。
我正在通过 beginAnimations:
和 commitAnimations
使用动画调整 UIWebView
的大小。一切都很顺利,除了当调整大小试图使 UIWebView
更大时除外。
让我更清楚地说明这一点。假设我的 UIWebView
的当前帧是 (0, 0, 320, 300)
。
然后,我尝试使用以下方法将其大小调整为 (0, 0, 320, 340)
:通过
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[self.webView setFrame:(CGRectMake(webView.frame.origin.x, webView.frame.origin.y, webView.frame.size.width, 340))];
[UIView commitAnimations];
这样做,我预计 UIWebView
会下降 40 像素,但它实际上上升了一点(大约 10 - 20 像素),然后才下降到所需的位置(因此实际上最终下降了大约 50 - 60 像素)。
有谁知道如何解决这个问题?我想要做的是在调用该方法时让我的 UIWebView 的底部下降,所以如果有任何其他选项可以完成它,我很乐意尝试。
多谢。
I've been struggling with this for a while and have not found a solution.
I'm resizing a UIWebView
using animations through beginAnimations:
and commitAnimations
. All goes well, except for when the resizing tries to make the UIWebView
larger.
Let me make this clearer. Suppose the current frame of my UIWebView
is (0, 0, 320, 300)
.
Then, I try to resize it to (0, 0, 320, 340)
by using:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[self.webView setFrame:(CGRectMake(webView.frame.origin.x, webView.frame.origin.y, webView.frame.size.width, 340))];
[UIView commitAnimations];
By doing that, I expect the UIWebView
to come down 40 pixels, but it actually goes up a little bit (around 10 - 20 pixels) and only AFTER THAT it comes down to the desired position (so it ends up coming down around 50 - 60 pixels, actually).
Does anyone know how to solve that? What I want to do is have the bottom of my UIWebView
go down when the method is called, so if there are any other options for accomplishing it, I would be happy to try.
Thanks a lot.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该尝试单独对边界进行动画处理,或者将边界和中心一起进行动画处理,而不是对 UIWebView 的框架进行动画处理。例如,将高度扩大 40,同时将中心向下移动 20。
Instead of animating the frame of the UIWebView, you should try animating the bounds alone, or perhaps the bounds and center together. e.g. expand the height by 40 while simultaneously moving the center down by 20.