0

iPhone の目覚まし時計アプリを見ていると、灰色のグラデーションの UITableViewCells にカスタム グラフィックスを使用しているときに、表にセルがない場合に、グループ化されたテーブル ビュー セルの背景には、No Alarms というラベルが付いています。

どうすればこの効果を達成できますか? 現在、私のView Controllerには、viewControllerのビュー、「No Alarms」のラベル、およびtableViewがあります。テーブルにアラームがない場合は、ラベルを表示してテーブルを非表示にし、アラームがある場合はその逆を行います。私が得ている問題はグラフィックです。

テストとして、テーブルの背景色を明るいオレンジ色に変更すると、そのオレンジ色が tableViewCells を照らします。tableViewCells と tableView はどちらも clearColor ではなくデフォルトの白に設定されていますが、viewController のビューは透けて見えます。私は何が欠けていますか?ありがとう。

4

2 に答える 2

0

XIBファイルを使用して、ビューの背景を「グループテーブルの背景色」に設定します。同じ背景画像をビューに設定できます。

于 2012-04-28T08:10:43.140 に答える
0

「アラームなし」ラベルがビューの階層の最上位のサブビューであることを確認する必要があります。そうであれば、テーブル ビューを非表示にすることを心配する必要はなく、オレンジ/白の背景で発生している問題に対処する必要もありません。

プログラム的に、最上位ビューにラベルを追加すると、次のようになります。

UILabel *label = [[UILabel alloc] init];
label.text = @"No Alarms";
// set the properties, autoresizing, etc...
[label sizeToFit];
[self.view addSubview:label];

最後の行は、実際にビューにラベルを追加するものです。ラベルをビューの中央に配置したい場合は、initWithFrame:そのように初期化するのではなく、ビューの中央に配置することができます。

別のオプション (NIB またはストーリーボードを使用している場合) は、「No Alarms」ラベルを作成し、IB アイテム エクスプローラーのビューのサブビュー階層で最上位のサブビューであることを確認することです (少なくともそれが呼ばれるものだと思います-いずれにしても、ビュー内のオブジェクトを選択できるフライアウト メニューについて言及しています)。次に、プログラム ロジックがアラームがある場合とない場合に、ラベルを非表示にして再表示します。これは私がおそらくそれを行う方法です...

于 2012-04-28T08:53:15.290 に答える