2

テーブル内のセルをタップすると、ios7 風になろうとして、UIPickerView を UITableView に挿入しています。これはうまく機能し、うまくアニメーション化されます。ただし、deleteRowsAtIndexPaths を呼び出してセルを撤回すると問題が発生します。

テーブル ビューで、ピッカーがセルの 1 つをさらに下に隠している「ブリード」/オーバーラップが発生しています。スクリーンショットを参照してください。

超カスタムはしていないので、iOS7のバグなのかな。すべてのセルの背景色は単色 (白) です。

どんな助けでも大歓迎です。ありがとう!

一番上の行をタップ 一番上の行をタップしてピッカーを表示すると、次のようになります。

これはリトラクト中のアニメーションです。重なりがあり、ピッカーが下部のセルににじみ出ていることに注意してください。 奇妙な重なり

4

3 に答える 3

2

この問題に苦労した後、Apple のカレンダー アプリケーションにも同じ問題があることに気付きました

ここに画像の説明を入力

.fadeただし、アニメーションを使用して行を挿入することにより、副作用を最小限に抑えます。

tableView.insertRows(at: indexes, with: .fade)
于 2016-12-01T10:25:14.543 に答える
2

理由はわかりませんが、ピッカー セルが [Choose Product] の下のセルを覆っているように見えます。これが実際に当てはまる場合、1 つの回避策は、セルの z オーダーを明示的に設定し、ピッカー セルを他のすべての下に配置することです。

#import <QuartzCore/QuartzCore.h>

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = ...;// your logic for getting a cell
    BOOL isPickerCell = ...;// your logic for identifying if this is the picker cell
    cell.layer.zPosition = isPickerCell ? 0 : 1;
}

ピッカーがテーブルの下部近くにある場合、最後のセルの下にはそれを覆うものが何もないため、ピッカーが透けて見える可能性があります。たとえば、「Choose Product」が最後のセルだったとします。これを回避するには、下部に空白のセルを挿入します。これは、さまざまな高さのセルを持つ一般的な問題です。

于 2013-10-30T21:01:51.660 に答える