淡入/淡出WebView

时间:2011-06-01 18:40:25

标签: cocoa macos webview

我的问题可能很简单,但解决方案让我感到厌烦。

我有一个嵌入在NSView中的WebView,并加载了一些内容。我想添加一个简单的淡入淡出过渡(点击一下按钮),2秒后只消失,WebView再次显示原始内容。

我不知道我是否可以通过Interface Builder在WebView中执行此操作,或者我需要以编程方式使用图层和CATransition。

到目前为止,我尝试过不同的变体:

[m_pView setWantsLayer:YES];

CATransition *transition = [CATransition animation];

transition.duration = 2;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionFade;

[ [m_pView layer] addAnimation:transition forKey:nil];  

我得到的只是从视图中删除原始内容并将其替换为空白。我想我错误地使用了图层,也许它们根本不需要解决我的问题。

任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

不支持在图层支持的视图上使用WebView。这只在Leopard发行说明中有所概述,但在10.6中仍然如此。

你需要做一些杂耍才能让它发挥作用,最有可能的方法是将WebView换成NSImageView,其中包含WebView内容的屏幕截图,然后逐渐消失将WebView换回新内容。