您可以轻松做到这一点。诀窍是您需要从使用 UIViewController 而不是 UITableViewController 开始。
如果您使用 Storyboard,首先将 UIViewController 拖到画布上。然后将 UITextField 拖到视图控制器上并将其放置在您想要的位置(即顶部)。接下来将 UITableView (NOT UITableViewController) 拖到您的视图控制器上,并将表格视图的框架设置为覆盖视图控制器的所有视图,除了您的文本字段顶部的视图部分(即您不想滚动的部分)。然后将 UITableViewCell 从对象的上颚拖到您的表格视图上。在属性检查器中,将表格视图单元格的 Identifier 属性设置为唯一的(“MyCell”或其他)。
完成此操作后,您的故事板场景应如下所示:
接下来,您需要设置 tableview 的委托和数据源属性。不要忘记这样做。通过按住 Ctrl 键单击表视图并从委托和数据源拖动到视图控制器来执行此操作。
最后,您需要在视图控制器类中实现表数据源和委托方法。在您的视图控制器头文件 (.h) 中,声明您将像这样实现 UITableViewDelegate 和 UITableViewDataSource:
@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
然后在视图控制器的实现 .m 文件中实现所需的方法。至少你需要实现tableView:numberOfRowsInSection: 和cellForRowAtIndexPath:,可能还有tableView:didSelectRowAtIndexPath: 和可能的其他。
@implementation MyViewController
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// return number of rows
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
// set value(s) in your table cell here
return cell;
}