我正在学习iOS编程。
我想知道使用界面构建器。
我制作一个tableViewController并制作.xib文件
现在我可以在界面构建器中看到UITableView。
我必须添加一个名为myView的视图,其中包含按钮,标签等。
我希望myView设置在tableView的区域顶部,就像tableview的标题一样。
所以我制作了一个myView,并添加了按钮,标签等。
然后我将该视图拖入UITableView。好的,这很好。
我可以看到myView在界面构建器中设置为UITableView的顶部。
但我运行该程序,myView不会出现。
当然使用IBOutlet连接,并声明属性和合成。
但我像这样使用NSLog
if(self.myView == nil)
NSLog(@"omg it's nil!!!");
我无法理解NSLog是打印出我的提示区域。
因为我在界面构建器中创建了该视图!
我可以看到tableView,当然可以看到细胞。
为什么myView没有出现?
我该如何解决?
我想知道如何使用界面构建器修复它。
请帮帮我
答案 0 :(得分:2)
不确定是否可以使用界面构建器,我通常手动创建一个视图并将其添加到viewWillAppear方法中的tableview标题中,如下所示:
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, 60)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10,self.tableView.bounds.size.width, 50)];
label.text = [person getFullName];
label.textAlignment = UITextAlignmentCenter;
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:25];
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake(0,1);
[headerView addSubview:label];
self.tableView.tableHeaderView = headerView;
更简单的方法是在单独的nib文件中创建一个视图,然后在加载tableview时将其加载到表头中:
UIViewController *aViewController = [[UIViewController alloc] initWithNibName:@"MYXIBFILEHERE" bundle:nil];
self.tableView.tableHeaderView = aViewController.view;
答案 1 :(得分:2)
我对XCode 4.3的体验:
你必须首先在同一个超级UIView上放置UITableView和UIView。然后,当将UIView拖到UITableView的顶部时,您会注意到XCode突出显示将视图作为页脚插入的选项。
完成后,您可以从superview中分离UITableView并将其删除。
答案 2 :(得分:0)
我能够让它发挥作用的唯一方法如下:
(显然,如果代码直接在编号列表之后,代码将无法正确格式化。)
[[NSBundle mainBundle] loadNibNamed:@"statsFooterView" owner:self options:nil];
self.tableView.tableFooterView = myFooterView;