【问题标题】:Why is this UIView not presenting in front of a UITableView?为什么这个 UIView 没有出现在 UITableView 前面?
【发布时间】:2012-03-20 05:51:12
【问题描述】:

我有一个 UINavigationController/UITableView,当表格为空时,我想在其上方显示一个 UIView,以提示用户如何将项目添加到表格中。

我从未制作过 UIView(与之前的 UIViewController 不同),所以我将逐步介绍我所做的一切:

  1. 创建一个新的 UIView 类 - MakeSentenceHelperView
  2. 制作一个名为 MakeSentenceHelperView.xib 的 nib
  3. 将文件的所有者设置为 MakeSentenceHelperView

在 MakeSentenceHelperView 中加载 nib:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        NSLog(@"makesentencehelperview init");
        [[NSBundle mainBundle] loadNibNamed:@"MakeSentenceHelperView" owner:self options:nil];
    }
    return self;
}

并在 UITableViewController 中显示MakeSentenceHelperView

        //present the placeholder view for sentences
        MakeSentenceHelperView *makeSentenceHelperView = [[MakeSentenceHelperView alloc] init];

        NSLog(@"present placeholder: self.navigationcontroller.view: %@", self.navigationController.view);

        //Something like this:
        [self.navigationController.view addSubview:makeSentenceHelperView];
        [self.navigationController.view bringSubviewToFront:makeSentenceHelperView];

类加载并记录正常,但 UITableView 前面没有出现任何内容 - 我哪里出错了?

更新:如果我添加 [self.tableView setHidden:YES]; 然后 tableview 消失并且空间是黑色和空的。我假设这意味着我在某处设置了错误的视图。

【问题讨论】:

  • 在使用 nib 子类化 UIView 时,请通过 this link
  • 这是一个非常有用的链接,谢谢 - 我实现了 awakeFromNib 和他们谈到的其他内容,但我仍然遇到同样的问题。

标签: ios cocoa-touch uitableview uiview addsubview


【解决方案1】:

您可以使用https://github.com/ecstasy2/toast-notifications-ios/ 来显示Android 上的Toast 视图。检查数组大小,如果表格视图没有显示,那么调用这个并显示任何自定义方法。

【讨论】:

  • 我真的不明白你的意思。我只想使用标准的 UIView。
【解决方案2】:

感谢@Aadhira 提供的链接,这导致我遇到了问题。

  1. 我需要添加 awakeFromNib
  2. 我错过了 [self addSubview:self.view];在 initWithFrame 的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多