Iphone UITableView添加子视图和表行
我正在尝试将自定义视图添加到使用UITableViewController中的代码创建的UITableView。此视图是一个带有消息的HUD窗口 因此,我有一个从重写的initWithStyle方法和表的刷新按钮调用的重载方法:Iphone UITableView添加子视图和表行,iphone,objective-c,ios,uitableview,Iphone,Objective C,Ios,Uitableview,我正在尝试将自定义视图添加到使用UITableViewController中的代码创建的UITableView。此视图是一个带有消息的HUD窗口 因此,我有一个从重写的initWithStyle方法和表的刷新按钮调用的重载方法: - (void) reload { HUD = [[MBProgressHUD alloc] initWithView:self.tableView]; [self.view addSubview:HUD]; HUD.delegate = sel
- (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,但也不起作用。我如何解决这个问题?多谢各位
编辑:为了澄清这一点,这里有一个可能的解决方案。非常感谢比尔·布拉斯基的帮助:
HUD = [[MBProgressHUD alloc] initWithView:self.view];
[[[UIApplication sharedApplication] keyWindow] addSubview:HUD];
下面是我在应用程序中使用几乎相同的应用程序所做的操作 您需要将其添加到主视图窗口,而不是tableView
HUD = [[MBProgressHUD alloc] initWithView:self.view.window];
[self.view.window addSubView:HUD];
我的项目基于IOS 7 这对我有帮助
[self.tableView setSeparatorStyle:uitableviewCellseparatorstyle] 谢谢你,比尔,我也试过了,但是我得到了同样的结果。我在新的测试版中使用MBProgressHUD时遇到了问题。您是否碰巧使用了新的测试版和/或旧版本的MBProgressHUD?我知道git上有一些更新可以帮助解决问题。如果它与您的代码无关,而是与进度视图本身有关,请进行检查。我查看了我的代码,在我的答案中看到了我的编辑,并让我知道。再次感谢您,比尔。我已经更新到最新的git版本。我已尝试了您的代码,但出现异常,因为self.view.window似乎为零。但是在您的帮助下,我找到了解决方案,使用了以下代码:HUD=[[MBProgressHUD alloc]initWithView:self.view];[[[UIApplication sharedApplication]键窗口]添加子视图:HUD];伟大的这些话在我的观点中起了作用,但不是全部。我会看看你的改变,看看这是否对我的其他观点有帮助。