【问题标题】:UITableView addSubview and table linesUITableView addSubview 和表格行
【发布时间】:2014-07-07 20:12:48
【问题描述】:

我正在尝试将自定义视图添加到使用来自 UITableViewController 的代码创建的 UITableView。此视图是带有消息 (MBProgressHUD) 的 HUD 窗口

所以我有一个方法 reload() 从重写的 initWithStyle() 方法和表格的刷新按钮调用:

- (void) reload {
    HUD = [[MBProgressHUD alloc] initWithView:self.tableView];
    [self.view addSubview:HUD];
    HUD.delegate = self;
    HUD.labelText = @"Downloading";
    [HUD showWhileExecuting:@selector(reloadWithHUD) onTarget:self withObject:nil animated:YES];
}

第一次,HUD 出现在表格线的后面。加载后,当我按下重新加载按钮时,视图按预期显示。 initWithStyle() 方法(为了清楚起见删除了一些代码)是:

- (id)initWithStyle:(UITableViewStyle)style {
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization.
        self.title = NSLocalizedString...

        UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle ... action:@selector(reload)];
        self.navigationItem.rightBarButtonItem = button;
        [button autorelease];
        [self reload];      
    }

    return self;
}

我尝试使用简单的 UILabel 更改 HUD 视图,结果相同。 我还将代码更改为从 viewDidLoad() 调用 reload(),但也不起作用。我该如何解决这个问题?非常感谢。

编辑:为了澄清这一点,这里有一个可能的解决方案。非常感谢 Bill Brasky 的帮助:

HUD = [[MBProgressHUD alloc] initWithView:self.view];
[[[UIApplication sharedApplication] keyWindow] addSubview:HUD];

【问题讨论】:

    标签: iphone objective-c ios uitableview


    【解决方案1】:

    这是我在我的应用程序中使用几乎相同的应用程序所做的事情。

    您需要将其添加到主视图 WINDOW,而不是 tableView。

    HUD = [[MBProgressHUD alloc] initWithView:self.view.window];
    [self.view.window addSubView:HUD];
    

    【讨论】:

    • 谢谢比尔,我也试过了,但我得到了同样的结果。
    • 我在新测试版中使用 MBProgressHUD 时遇到了问题。您是否偶然使用了新的测试版和/或旧版本的 MBProgressHUD?我知道 git 上有一些更新可以帮助解决问题。只是检查它是否与您的代码无关,而是与进度视图本身有关。
    • 我查看了我的代码,在我的回答中查看了我的编辑并告诉我。
    • 再次感谢您,比尔。我已经更新到最新的 git 版本。我试过你的代码,但我得到一个例外,因为 self.view.window 似乎是零。但在您的帮助下,我找到了解决方案,使用以下代码:HUD = [[MBProgressHUD alloc] initWithView:self.view];[[[UIApplication sharedApplication] keyWindow] addSubview:HUD];
    • 太棒了!这些行在我的一种观点中起作用,但不是全部。我会看看您的更改,看看这是否对我的其他观点有帮助。
    【解决方案2】:

    我的项目基于 IOS 7 这对我有帮助

    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      相关资源
      最近更新 更多