我要如何在程序中加入这个功能?我不确定我应该搜寻什么关键词才能找到它。我知道如何添加IBAction,但不知道如何编写生成图片中所示功能的代码。这是自定义单元格还是分隔符?
这只是TableView中的一个标题,它们出现在你的部分顶部
如果您想要一个标题,请使用此方法:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
如果您想要自定义视图,则可以使用这个:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
而对于高度:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
尝试这个:以编程方式添加标题,很容易的。
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(1, 50, 276, 30)];
headerView.backgroundColor = [UIColor colorWithRed:235/255.0f green:235/255.0f blue:235/255.0f alpha:1.0f];
UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(4, 5, 276, 24)];
labelView.text = @"hello";
[headerView addSubview:labelView];
self.tableView.tableHeaderView = headerView;
或者尝试使用Swift
var headerView: UIView = UIView.init(frame: CGRectMake(1, 50, 276, 30))
headerView.backgroundColor = UIColor(red: 235/255.0, green: 235/255.0, blue: 235/255.0, alpha: 1.0)
var labelView: UILabel = UILabel.init(frame: CGRectMake(4, 5, 276, 24))
labelView.text = "hello"
headerView.addSubview(labelView)
self.tableView.tableHeaderView = headerView
Swift 4.0 及以上版本
var headerView: UIView = UIView.init(frame: CGRect.init(x: 1, y: 50, width: 276, height: 30))
headerView.backgroundColor = UIColor(red: 235/255.0, green: 235/255.0, blue: 235/255.0, alpha: 1.0)
var labelView: UILabel = UILabel.init(frame: CGRect.init(x: 4, y: 5, width: 276, height: 24))
labelView.text = "hello"
headerView.addSubview(labelView)
self.tableView.tableHeaderView = headerView
已更新至Swift 4
与SimplePJ的答案类似。如果您想为整个表视图创建自定义标题视图,可以创建一个,并将其设置为tableHeaderView,如下所示。
let headerView: UIView = UIView.init(frame: CGRect(x: 1, y: 50, width: 276, height: 30))
headerView.backgroundColor = .red
let labelView: UILabel = UILabel.init(frame: CGRect(x: 4, y: 5, width: 276, height: 24))
labelView.text = "My header view"
headerView.addSubview(labelView)
self.tableView.tableHeaderView = headerView
这不应与创建表视图区段标题混淆,你可以使用以下方法。
func headerView(forSection section: Int) -> UITableViewHeaderFooterView?
返回值为与部分相关联的标题视图,如果该部分没有标题视图,则返回nil。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
第一种方法返回页眉视图的高度, 第二个方法返回应该显示的视图。
以下是一个示例:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 55.0;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
return [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"simpleHeader.png"]];
}
UITableViewSectionHeader
。这个链接可能会有所帮助:https://www.google.co.uk/search?q=UITableViewHeaderFooterView&ie=utf-8&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&gws_rd=cr&ei=PEV6UrLMB7KR7AaQvIGwAQ,同时也可以查看苹果文档中关于`UITableView`的内容:https://developer.apple.com/library/ios/documentation/uikit/reference/UITableView_Class/Reference/Reference.html。 - Popeye