0

UITableView を作成しましたが、これは UIView のサブビューです。私が抱えている 3 つの問題があり、それは iOS 4 デバイスでのみ発生しています。

1) スクロール中にビューがテーブルの上部または下部にヒットしても、テーブルは跳ねません。垂直バーも縮小せず、粘着性があり、Android のテーブル ビューのように動作します。バウンス プロパティを有効にしようとしましたが、違いはありません。

2) ビューをテーブルの一番下までスクロールすると、水平スクロール バーが表示されます。テーブル ビューの contentSize が正しく設定されているため、これは表示されません。contentSize が本来あるべき値より 20 ピクセル少なく設定されると、最終的には消えます。

3) フッター ビューの一番下までスクロールできず、フッター ビューの半分しか表示されません。

プロジェクト全体で UITableView を他のビューにサブビューとして追加しましたが、これは一度も発生していないため、他の UITableView を作成する方法をコピーしましたが、まだ運がありません。

どんな提案でも大歓迎です。

ありがとう、アンクル

4

1 に答える 1

0

私は問題を解決しました。コーディングの仕方が少し面倒だと感じましたが、問題は少し奇妙です。

ビューをサブクラス化していますが、親ビューには、テーブル ビュー サブビューのフレームを計算して設定するだけの layoutSubview メソッドがあります。サブクラスでは、テーブル ビューのフレームの値が異なる必要があるのと同じ理由で、layoutSubview をオーバーライドする必要がありました。これは、テーブル ビューのフレームが、親クラスによって 1 回、サブクラスによって 2 回、2 回レイアウトされたことを意味します。iOS 4 はこれが気に入らないようで、layoutSubview 呼び出しごとにサブビューごとに 1 回だけフレームを設定する必要があります。

ここで、親の layoutSubview から呼び出される layoutTableView メソッドを作成し、サブクラスで layoutTableView をオーバーライドしました。したがって、テーブル ビューのフレームは 1 回だけ設定されます。

于 2012-09-26T13:30:13.010 に答える