0

私は次の効果を達成しようとしています-UIImageViewを一番下に配置-UITableViewをUIImageViewの上に配置し、UIImageViewの一部をカバー-UITableViewをプルダウンすると、UIImageViewの残りの部分がそれに応じて表示されます。

UIViewController 内で次のようにコーディングしました

[self.view addSubview:[self myImageView]]; // CGRectMake(0.0f, 0.0f, 320.0f, 240.0f)
[self.view addSubview:[self myTableView]]; // CGRectMake(0.0f, 140.0f, 320.0f, 480.0f)

しかし、視覚的には、テーブル ビューがプルダウンされると、上記で達成したかったことではなく、テーブル ビューがイメージ ビューの下にあり、イメージ ビューから引き出されたようになります。

それを修正する方法は?

4

2 に答える 2

0

UITableView は、サブビュー階層でその背後にあるものを表示しません。背景があり、技術的には長いリストをビューの内外にドラッグするのではなく、常に同じ高さの設定フレームに表示されるものをドラッグするだけです。上下にドラッグしすぎると、テーブル ビューの背景が表示されます*。

あなたの問題には2つの解決策があります..

テーブルのビューの背景として画像を追加できます (上記のオブジェクト名を使用):

// nil by default (but has a color if nil)
[[self myTableView] setBackgroundView:[self myImageView]];

または、テーブル ビューの背景色を透明にして、背景にサブビューを表示することもできます。

[[self myTableView] setBackgroundColor:[UIColor clearColor]];

あなたの場合、myImageView フレームは画面フレーム全体を埋めていないため、後者のソリューションがおそらく最良のソリューションですが、画像のない領域は一番後ろの背景色 (UIViewController の設定に応じて background または UIWindow)。

お役に立てれば!

*ヘッダー ビューまたはフッター ビューを設定しない限り、これは UITableView が継承する UIScrollView の一部であり、これらのビューはテーブルビューのコンテンツと共にスクロールするため、背後に静的に表示されるのではなく、おそらくこの場合は探しているものではありません。テーブル。

于 2012-04-24T23:59:03.390 に答える
0

テーブルビューの .backgroundImage または .backgroundView プロパティを設定するだけでよいと思います[UIImage imageNamed@"my image"];

于 2012-11-03T05:11:56.080 に答える