0

基本的に、アラームなどを保持する UITableView があります。

画面の下部にアラームを追加するための「+」ボタンがありますが、もちろん、アラームを追加する前はテーブルは空白です。

アラームがなく、テーブル ビューが空の場合、「+ を押してアラームを追加する」のようなプレースホルダー テキストが必要です。

私はこれを試しみましたが、上記のテキストを表示するセルでプレースホルダー UITableView を作成することについての提案も見つけました。次に、アラームがあるかどうかに応じて、プレースホルダー UITableView またはアラーム UITableView を表示/非表示にします。私はそれを機能させることができず、単純な文字列を表示したいのは少し多すぎると思います。

また、アラームがない場合はプレースホルダー UITableViewCell を作成しようとしましたが、それは numberOfRowsInSection を混乱させ、セルを削除する機能を壊します (numberOfRowsInSection は決してゼロにならないため)。

更新: また、tableView の tableHeaderView (および tableFooterView) に UILabel を追加しようとしました。運がない。

何か案は?

4

1 に答える 1

1

このサイトでいくつかの調査を行った後、次のデリゲート コールバックを実装して解決しました。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    if (self.alarmList.count == 0) {
        UILabel *label = [[UILabel alloc] init];
        label.text = @"press the + to add an alarm";
        label.textAlignment = UITextAlignmentCenter;
        label.numberOfLines = 2;
        label.font = [UIFont boldSystemFontOfSize:16];
        label.backgroundColor = [UIColor darkTextColor];
        label.textColor = [UIColor whiteColor];
        return label;
    } else {
        return nil;
    }
}

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    if (self.alarmList.count == 0) {
        return 68;
    } else {
        return 0;
    }
}
于 2013-02-23T23:15:06.887 に答える