1

ネイティブiPhoneアプリ用に(jQuery Mobileの設計に基づいて)カスタムテーブルビューを設計しました。テーブルビューは、内の背景画像として使用できるいくつかの画像(ヘッダー、行など)にスライスされましたUITableView。私はこの画像を私のカスタムUIImageViewのになりますで使用します。一部のデバイスでは、どういうわけか下マージンが表示されます。backgroundViewUITableViewCell

簡単にするために、私はiOSのテーブルビューヘッダーを使用しません。テーブルビュー内のすべては、(偽の)ヘッダーを含むテーブルビューセルです。各セルの高さは、背景画像の高さと一致します。すべてのビューはプログラムでセットアップされるため、XIBファイルに問題を引き起こす可能性のある隠されたものはありません。

UITableViewwithスタイルを使用していますUITableViewStylePlain。通常の区切り文字が表示されないようにするために、テーブルビューコントローラーのviewDidLoadメソッドで次のコードを使用します。

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

initカスタム(サブクラス化された)テーブルビューセルのメソッドでは、次のように背景画像を適用します。

UIImage *backgroundImage = [UIImage imageNamed:@"Word.png"];
self.backgroundView = [[UIImageView alloc] initWithImage:backgroundImage];

これは、iOSシミュレーター(iOS 5.0と5.1の両方)およびiPhoneとiPad(iOS 6の両方)で完全に機能します。ただし、私のクライアントのiPhone(iOS 5.1.1)では、背景画像の高さがテーブルビューセルより2px低くなっています。このため、水平線が表示されます。

問題(親指)

完全な画像をクリックしてください

デバッグを容易にするために、次のlayoutSubviewsような方法でセルとその背景ビューに背景色を追加しました。

self.backgroundView.backgroundColor = [UIColor orangeColor];
self.backgroundColor = [UIColor yellowColor];

通常のセルにはオレンジと黄色を使用し、ヘッダーセルには青と緑を使用しました。画像を見ると、背景ビューの高さがセルの高さと等しいことがわかります。これは、frameboundsの両方のビューをログに記録することで確認されます。

ここで何が悪いのかわかりません。すべてのUITableViewCellは、背景画像とまったく同じサイズです。すべての画像に@2xは、正確に2倍大きいRetinaバリアントがあります。

うまくいけば、誰かがここで何が悪いのかを知っています。何か試してみる必要がある場合は、コメントを投稿してください。さらに、iOS 5.1.1がインストールされている他のデバイスをいくつか見つけて、そこで何が起こるかを確認します。

4

1 に答える 1

1

Google で簡単に検索すると、次のようになります。

UIImageView 1 ピクセル

提案する以前の Stackoverflow ディスカッションを返します

ビルド設定で「PNG ファイルの圧縮」を「いいえ」に設定します。

この正確な問題を修正する可能性があります: Xcode 4.3.1 を使用した iOS 5.1: [UIColor colorWithPatternImage:] デバイスでのみ奇妙な動作

于 2012-08-07T03:27:34.237 に答える