0

Web ページを表示するスクリーン セーバーを作成しました。メイン ディスプレイでは思いどおりに動作しますが、プレビュー ディスプレイとセカンダリ ディスプレイでは、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あなたがやりたいことを正しく理解できれば、ビューをスーパービューと同じ大きさにする必要があります。通常は(0,0)から(width、height)までの長方形です。

于 2008-12-12T21:00:59.977 に答える
1

私はあなたのコードを見て、スーパービューの (WebSaverView) フレーム四角形を WebView のフレームとして使用しています。代わりに、外接する四角形 ( [self bounds]) を使用する必要があります。外接する長方形は、スーパービューの「内側」の領域を表します。ご覧のとおり、この 2 つは常に同じ起源を持つとは限らないため、この問題が発生しています。渡されたフレームを調整するべきではありません。initWithFrame:原点が 0,0 でないのには十分な理由があるからです。

于 2008-12-12T22:12:24.980 に答える