1

現在、ちらつきが発生すると、ナビゲーションバーに対してフラッシュするのではなく、ステータスバーの真下に対してセクションがフラッシュされるテーブルビュー設定があります。これが適切な動作かどうかはわかりませんが、ほとんどのアプリケーションでは、セクション タイトルがスライドして表示されると、ナビゲーション バーの下に適切に表示されます。

tableView を任意に縮小する代わりに、これを修正する正しい方法は何ですか?

* 編集 *

Broken cell で作成したスレッドに関連して、奇妙な取り消し線が付いていますか? . ナビゲーション バーを半透明の黒に設定すると、この問題と「セルの取り消し線」の問題が発生します。Black Opaque や Normal の場合は、このような問題はありません。それが私のコード内の何かの結果なのか、SDK の問題なのかはわかりません。

4

4 に答える 4

3

IB で境界が適切に設定されていないか、スプリングとストラットが正しくないようです。これは UIViewController のトップ レベルですか、それともサブビューですか? UINavigationController を使用していますか? IB でインターフェイスをテストすると、問題ないように見えますか?

于 2008-11-26T18:01:00.417 に答える
1

同様の問題があり、これを設定することで自動的に修正されます

self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
于 2011-04-13T04:45:48.283 に答える
0

他の投稿で示したように、UINavigationControllerの下のビューの階層が混乱しているのではないかと思います。

UINavigationControllerのコンテンツビュー(ナビゲーションバーとUITableViewを含む)のlayoutSubviewsは、ナビゲーションバーと重ならないようにUITableViewのサイズを設定する必要があります。あなたの場合、UITableViewが後で自分自身のサイズを変更しているか、layoutSubviewsが何らかの理由でUITableViewを認識しておらず、UITableViewがナビゲーションバーの下を通過しているため、表示されている配置の問題が発生していると推測されます。

于 2008-11-26T23:40:58.717 に答える
0

次のコードを使用して、iOS 5.1でも同じ問題が発生しました。

ナビゲーション コントローラーを作成し、テーブル ビューを追加する

UINavigationController *navigationController = [[UINavigationController alloc] init];
[navigationController setModalPresentationStyle:UIModalPresentationFormSheet];
[navigationController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[navigationController.navigationBar setBarStyle:UIBarStyleBlack];
[navigationController.navigationBar setTranslucent:TRUE];
[navigationController setNavigationBarHidden:NO animated:NO];
[self presentModalViewController:navigationController animated:YES];

MyTableViewController *aTableViewController = [[[MyTableViewController alloc] initWithStyle:UITableViewStylePlain] autorelease];
aTableViewController.navigationItem.rightBarButtonItem = buttonItem;
[navigationController pushViewController:aboutTableViewController animated:YES];

テーブル ヘッダー ビューをテーブルに追加する

ATableHeaderView aTableHeaderView = [[[ATableHeaderView alloc] initWithFrame:aboutTableView.frame] autorelease]; 
[aTableHeaderView setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin];
[aTableHeaderView sizeToFit];
[aTableView setTableHeaderView:aTableHeaderView];

テーブル ヘッダー ビュー内にいくつかのラベルを追加しました

UILabel *aLabel = [[[UILabel alloc] initWithFrame:CGRectMake(x,y, width, height)] autorelease];
[aLabel setText:aString];
[aLabel setAutoresizesSubviews:YES];
[aLabel setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];

最終的に、ナビゲーション バーの下にテーブル ヘッダーのコンテンツが表示されました。ナビゲーションバーを黒一色に変更すると修正されました。しかし、これは私が望んでいたものではありません。いくつかの試行錯誤の後、次の行を削除しました。

[aLabel setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];

ヘッダーのUILabelの設定から、問題は修正されました。半透明のヘッダーがあり、テーブルのコンテンツが適切に配置されています。

于 2012-07-26T09:21:05.060 に答える