14

コードで UITableViewController を作成し、ナビゲーション スタックの上にプッシュしています。テーブル ビューは、テキスト項目の単純なリストを表示することを目的としています。

UITableViewController の init メソッドに追加するテーブル ビューに contentInset を追加する必要があります。

self.tableView.contentInset = UIEdgeInsetsMake(7.0f, 5.0f, 7.0f, 5.0f);

ただし、テーブル ビューを読み込むと、左右の contentInset が実際にテーブル ビューの幅を 10 倍に拡大したように見えます。現在、小さな水平方向のスクロール可能な領域が表示されています。テーブルビューで水平スクロールをしたくありません。contentInset コードを削除すると、テーブル ビューは単純に動作します。つまり、単に垂直スクロールを提供します。どうすればそのように保つことができますが、contentInset を配置できますか? viewWillAppear で contentSize.width を 10 減らしてみましたが、効果はありませんでした。

これは重複しているようですが、受け入れられる答えはありません: UITableView ContentInsets コンテンツを水平方向にスクロールする

モックでは、目的の contentInset を破線でマークしました ---

ここに画像の説明を入力

ありがとう。

4

4 に答える 4

4

私は上下のインセットだけを設定することになりました。左右のインセットのルック アンド フィールを実現するために、画面と同じ幅のカスタム セルを作成しました。ただし、実際のセル コンテンツは、カスタム セル内のわずかに狭いサブビューに制限されていました。したがって、サブビューの左右にスペースが残っていました。

于 2013-05-14T21:27:09.773 に答える
0

機能する別の方法は、フレームを設定する代わりに、tableViewセルのフレームを次のcontentViewように設定できることです。

- (void) layoutSubviews
{
    [super layoutSubviews];

    CGRect frame = self.contentView.frame;
    frame.size.width = frame.size.width * 0.9; //90% of total width
    frame.origin.x = self.center.x - (frame.size.width/2); //center the contentView
    self.contentView.frame = frame;
}

上記を使用して、セルに必要な左または右または左のパディングを追加できます。すべてのサブビューがに追加されるcontentViewため、問題はありません。

幸せなコーディング..!

于 2013-09-14T14:26:25.153 に答える
0

scrollView のバウンス プロパティを YES に設定する必要があるかもしれません。また、contentInset を設定しないでください。

于 2013-04-28T08:15:17.177 に答える