1

プログラムでビューに追加しようとしましたUITableViewが、次のようにパラメーターを設定しても機能しません(最後のセルがトリミングされます)。

table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) style:UITableViewStylePlain];

高さを460に置き換えてみましたが、これはかなりうまく機能します。しかし、私はこのバーの正確なサイズを知りたいです:

ここに画像の説明を入力してください

ご協力いただきありがとうございます。

4

5 に答える 5

6

コード内のどの時点でも、高さの正確な値をハードコーディングしないでください。

UINavigationControllerデフォルトのUIコンポーネント( / UITableView/ /など)を使用している限り、UICollectionView通常、ステータスバーの高さをまったく気にする必要はありません。これらのViewControllerは、任意のデバイスおよび任意の方向で正しくレイアウトする必要があります。

カスタムレイアウトが必要な場合は、高さをハードコーディングするのではなく、を参照する必要がありますsafeAreaLayoutGuidehttpsUIView ://developer.apple.com/documentation/uikit/uiview/2891102-safearealayoutguide?language=objc


しかし、この答えを完全にするために、ステータスバーのサイズはデバイスや向きによって異なります。

  • iPhone Xまでのほとんどのデバイスは、縦向きと横向きで20ポイントの高さです。
    (@ 1x、@ 2x、@ 3xで20px、40px、60px)
  • 縦向きのiPhoneXでは44ptです(したがって、44px、88px、132px)。
    ただし、風景では高さが異なります。
于 2013-03-11T23:02:36.107 に答える
1

画面に合わせてサイズを設定するために、設定されたピクセルサイズを使用しないでください。ビューのフレームを使用します。すなわち

table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];

ともかく。20点です。20px非網膜。40pxの網膜。

于 2013-03-12T08:49:18.023 に答える
1

親のViewControllerは、ビューのサイズを適切なサイズに変更します。あなたはできる

  • ビューコントローラにUIViewのサブクラスをロードさせ、オーバーライドさせます-layoutSubviews
  • [[ MyViewClass alloc ] initWithFrame:superview.bounds]適切な開始サイズ( )と適切な自動サイズ変更マスクを使用してサブビューを挿入します。自動サイズ変更ストラットとスプリングを使用するときは、最初に適切なサイズをビューに与えることが重要です。

ところで、ステータスバーの高さをハードコーディングする際のもう1つの問題は、高さが2倍になることもあります。(ユーザーが音声を録音しているとき、電話をかけているとき、インターネットテザリングを使用しているとき、ナビゲーションを使用しているときなど)

于 2013-03-12T00:50:15.727 に答える
1

この回答は、元の質問へのコメントにあるロブの質問に対するものです。

したがって、画面サイズをハードコーディングしない場合、UIViewControllerに合わせて自動的に設定するにはどうすればよいですか?

これを試して:

- (void)viewDidLoad {
    [super viewDidLoad];

    table = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    // all other table setup
    table.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:table];
}

これは、テーブルビューがビューコントローラのビューを埋めることを前提としています。必要に応じて調整します。

これにより、ViewControllerのビューサイズの変更に応じてテーブルビューのサイズが確実に変更されます。これには、ローテーション、通話中のステータスバーなどが含まれます。

于 2013-03-12T01:46:07.197 に答える
0

iPhoneXのアップデート

以前は、すべてのiPhoneデバイスのステータスバーの高さは20ポイントでした。しかし、iPhoneXでは44ポイントです。したがって、UIを実装するときは注意してください。

于 2017-09-14T14:52:42.017 に答える