web-dev-qa-db-ja.com

UITabBarは、UITableViewの最後のセルを非表示にします

self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height ) style:UITableViewStylePlain];

enter image description here

テーブルビューフレームをに変更した場合

(0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height -49.0)

enter image description here

スクロールバーが空白のままになりますが、気に入らないのですが、どうすれば修正できますか?

どうもありがとうございました。

20
jxdwinter

そのテーブルビューのcontentInsetを設定してみてください。 iOS 7には、topLayoutGuidebottomLayoutGuideがあります(これはあなたが望むものです)。 UITabBarControllerの内部では、bottomLayoutGuideは基本的に下部のバーの高さを示します。

tableView.contentInset = UIEdgeInsetsMake(0, 0, self.bottomLayoutGuide.length, 0);

トリックを行う必要があります。

48
Dennis

半透明のプロパティをNOに設定します

// In init or viewDidLoad of tab bar controller
self.tabBar.translucent = NO;

これで、タブバーのサイズがテーブルビューのサイズに変更されます。

translucentプロパティは、iOS7以降で使用できます。

27
Eric Amorde

2つのオプションがあります:

最初

self.tableView.contentInset.bottom = self.tabBarController?.tabBar.frame.height ?? 0

これでトリックが実行され、tabバーのtransparentプロパティが保存されます。


SecondデザインビューでオプションUnder Bottom Barsのチェックを外すだけですが、tab barは単色のように見えることを覚えておいてください(いいえその背後にあるもの)。

enter image description here

enter image description here

1
wajih

// viewDidLoad()で、次の行が機能しました

self.edgesForExtendedLayout = UIRectEdge.None self.navigationController?.navigationBar.translucent = false self.tabBarController?.tabBar.translucent = false

1

スイフト

self.tabBar.isTranslucent = false

注:@EricAmordeの回答はSwiftに変換されます。

1
Hemang