为什么这个UIView没有出现在UITableView前面?

时间:2012-03-20 05:51:13

标签: ios cocoa-touch uitableview uiview addsubview

我有一个UINavigationController / UITableView,当表为空时,我希望在它上面显示一个UIView,以便向用户提示如何向表中添加项目。

我从来没有制作过UIView(而不是之前的UIViewController)所以我会逐步完成我的工作:

  1. 制作一个新的UIView类 - MakeSentenceHelperView
  2. 制作一个名为MakeSentenceHelperView.xib的笔尖
  3. 将文件所有者设置为MakeSentenceHelperView
  4. 将笔尖加载到MakeSentenceHelperView:

    - (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];,则表格视图消失,空格为黑色且为空。我假设这意味着我在某处设置了View错误。

2 个答案:

答案 0 :(得分:0)

您可以使用https://github.com/ecstasy2/toast-notifications-ios/来展示Toast view liek Android。检查数组大小,如果表视图未显示,则调用此视图并显示任何自定义方法。

答案 1 :(得分:0)

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

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