0

我编写了一个显示网页的屏幕保护程序。它在我的主显示器上完全按照我的意愿工作,但在预览和辅助显示器中,Web 视图挂在屏幕顶部。

示例(来自预览):

屏幕保护程序错误 http://img.skitch.com/20081212-nk5cqrgfds1funr1a3p72aw25q.preview.jpg
使用plasqSkitch上传!

我的代码非常简单。从内部initWithFrame:isPreview:我有以下代码:

webview = [[WebView alloc] initWithFrame:frame
                           frameName:@"main"
                           groupName:@"main"];
[self addSubview:webview];

有谁知道发生了什么?

如果有人想玩这个项目,代码在 github 上。

4

2 回答 2

1

我认为您给 WebView 的框架位于错误的坐标中。请记住,视图的框架是根据父视图的坐标系(边界)表示的。

-bounds如果我正确地理解了您想要做的事情,您应该使视图与 superview 的一样大:通常是从 (0,0) 到 (width,height) 的矩形。

于 2008-12-12T21:00:59.977 回答
1

我查看了您的代码,您正在使用超级视图的 (WebSaverView) 框架矩形作为 WebView 的框架。您应该改用它的边界矩形 ( [self bounds])。边界矩形表示超级视图“内部”的区域。如您所见,两者可能并不总是具有相同的起源,这导致了这个问题。您不应该调整传入的帧initWithFrame:,因为原点可能有一个很好的理由不为 0,0。

于 2008-12-12T22:12:24.980 回答