1

私のアプリには、すべての状況で必ずしもコンテンツがあるとは限らないいくつかの UITableViewControllers が含まれています。たとえば、ユーザーが下書きを持っていない場合、下書き画面は空です。

そのような場合、組み込みの写真アプリの次の画面のように、画面の目的を説明する簡単なメッセージを表示したいと思います。

2 枚の写真の輪郭とキャプションを含む空白の画面上の iOS ナビゲーション バー

画面に説明的なビューを表示する最良の方法は何ですか? 特にUITableViewControllerに関連付けられているiOS 6の機能に依存しているため、UIViewControllerを直接サブクラス化することはできません。そのため、私が知る限り、このビューをUITableView内に表示する必要があります。助言がありますか?

4

1 に答える 1

1

サブクラスUITableViewController-viewDidAppear:または他の同様の適切な場所で、テーブル内のセルの数がゼロになるかどうかを確認します。その場合は、このオーバーレイを追加してください。そうでない場合は、オーバーレイが削除されていることを確認してください。以下のサンプルコード:

@interface MyTableViewController : UITableViewController
...
@property (nonatomic, weak) UIImageView *informativeOverlayImageView;
...
@end

@implementation MyTableViewController

...

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    // Just for an example - you'll have your own logic for determining if there will be zero rows.
    if (self.myDataModel.items.count == 0 &&
        !self.informativeOverlayImageView.superview)
    {
        if (!self.informativeOverlayImageView)
        {
            self.informativeOverlayImageView = [[UIImageView alloc] initwithImage:[UIImage imageNamed:@"someImageName"]];
            [self.informativeOverlayImageView sizeToFit];
        }
        [self.view addSubview:self.informativeOverlayImageView];
    }
    else if (self.myDataModel.items.count > 0 &&
            self.informativeOverlayImageView.superview)
    {
        [self.informativeOverlayImageView removeFromSuperview];
        [self.tableView reloadData]; // Add animations to taste.
    }
}

...

@end

お役に立てれば!

于 2012-09-05T09:17:52.237 に答える