1

このコードは iOS7 で機能しますが、iOS6 シミュレーターで実行すると、サブレイヤーの上にあるはずのセルが下に表示されます。

bgLayer = [BackgroundLayer gradientFromColor:COLOR_MID_GRADIENT to:COLOR_GRADIENT];
CGRect bottom = self.view.bounds;
bottom.origin.y = self.view.bounds.size.height-GRADIENT_HEIGHT;
bottom.size.height = GRADIENT_HEIGHT;
bgLayer.frame = bottom;
[self.view.layer insertSublayer:bgLayer atIndex:1];

それが行うことは、テーブルビューを使用してビューの下部にグラデーション レイヤーを配置することです。

ただし、グラデーションの矩形内のセルはその背後に隠されます!

インデックスを変更しようとしましたが、何もしません。また、insertSublayer: below: も機能しません。

私は何が欠けていますか?テーブルビューセルの下にレイヤーを配置する方法は?

ありがとう。

4

2 に答える 2

2

trojanfoe のおかげで、私は正しい方向に向けられました。

競合するレイヤーの zPosition を手動で変更して、なんとか機能させることができました。iOS6 では、viewWillAppear ではなく、viewDidAppear で add layer-code を実行する必要があります。理由は聞かないでください。おそらく、viewWillAppear の後にセルがレンダリングされることに関係していると思います。

于 2013-10-08T06:43:50.507 に答える
0

「後ろ」のように、下という意味ですか?その場合は、 tableview の backgroundView を設定し、必要に応じて変更します。(レイヤー、サブビーなど)、常にセルの後ろに表示されます

于 2013-10-07T14:17:24.557 に答える