我写过一个显示网页的屏幕保护程序。它在我的主显示器上完全按照我的要求工作,但在预览和辅助显示中,Web视图悬挂在屏幕顶部。
示例(来自预览):
screen saver bug http://img.skitch.com/20081212-nk5cqrgfds1funr1a3p72aw25q.preview.jpg上传了plasq的Skitch!我的代码很简单。在initWithFrame:isPreview:
内,我有以下代码:
webview = [[WebView alloc] initWithFrame:frame
frameName:@"main"
groupName:@"main"];
[self addSubview:webview];
有谁知道发生了什么事?
如果有人想玩这个项目,the code就在github上。
答案 0 :(得分:1)
我认为你给WebView的框架坐标错误。请记住,视图的框架是以超视图的坐标系(边界)表示的。
如果我正确地想要做什么,你应该使视图与superview的-bounds
一样大:通常是从(0,0)到(宽度,高度)的矩形。
答案 1 :(得分:1)
我查看了你的代码,你正在使用superview的(WebSaverView)框架矩形作为WebView的框架。您应该使用它的边界矩形([self bounds]
)。边界矩形表示超视图“内部”的区域。正如您所见,这两者可能并不总是具有相同的原点,这导致了这个问题。你不应该调整你在initWithFrame:
传递的帧,因为原点可能有很好的理由不是0,0。