0

標準のUIViewController/UIViewセットアップを備えたiPadアプリがあります-すべての回転が許可されています。UIViewは、タイル画像を背景として描画します(タイルは256 * 256ピクセルです)。

- (void)drawRect:(CGRect)rect
{
    [[UIImage imageNamed: @"Background.png"] drawAsPatternInRect: rect];
}

iPadを回転させると、回転中に元の方向の画像パターンが新しい方向に合うように拡大縮小されていることがわかります。次に、アニメーションが終了した直後に、ビューはスケーリングされていない最終構成で背景パターンを再描画します。スケーリングされたパターンからスケーリングされていないパターンへの切り替えは少し見苦しいように見えます。

この背景パターンの構造を回避(または非表示)する方法はありますか?

4

2 に答える 2

2

パターン画像を背景の「色」として使ってみませんか?これにより、自動的にタイルパターンが作成され、drawRect()によるスタントが回避されます。例えば:

UIImage *backgroundTile = [UIImage imageNamed: @"Background.png"];
UIColor *backgroundPattern = [[UIColor alloc] initWithPatternImage:backgroundTile];
[myView setBackgroundColor:backgroundPattern];
[backgroundPattern release];
于 2010-06-22T21:13:26.787 に答える
2

簡単に言えば、

[myView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@ "Background.png"]]];

于 2010-10-05T15:18:49.593 に答える