不滚动的UITableViewHeader

时间:2012-08-22 07:29:22

标签: iphone objective-c ios uitableview uistoryboard

我有一个TableViewController,它应该在表格视图的顶部有一个“浮动”标题, 滚动内容。

有没有办法使用UITableViewController实现这一点(我知道这可以通过在普通UIViewController内嵌套一个Tableview来完成,但我更希望有一个UITableViewController作为主ViewController所以我可以使用Storyboard TableView-Goodies的好处。

2 个答案:

答案 0 :(得分:1)

使用UITableViewController或其子类创建一个笔尖,然后重新排列表格视图,为标题视图腾出空间。具有略微不同布局和更多视图的表视图控制器仍然是表视图控制器。

答案 1 :(得分:-2)

它可能被视为 hack ,但这似乎可以胜任! (使用默认的Master-Detail项目模板测试)

首先将MasterViewController的类型更改为UIViewController,然后添加委托和数据源的协议引用。同时为IBOutlet添加UITableView

@interface MasterViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

@property (weak, nonatomic) IBOutlet UITableView *tableView;

@end

接下来,将IBOutlet与故事板编辑器中的UITableView相关联。

现在将以下代码添加到viewDidLoad

UIView *mainView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
UILabel *header = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];
header.text = @"HEADER";
header.backgroundColor = [UIColor greenColor];
[mainView addSubview:header];
self.tableView.frame = CGRectMake(0, 40, 320, 440);
[mainView addSubview:self.tableView];
self.view = mainView;