Ios 在UITableView中的表节下添加文本

Ios 在UITableView中的表节下添加文本,ios,objective-c,uitableview,uilabel,footer,Ios,Objective C,Uitableview,Uilabel,Footer,我试图模仿iOS 7“快捷方式”这样的视图 我使用了一个UITableViewController,带有静态单元格、1个部分和2行。对于文本“创建一个快捷方式…”,我尝试了UILabel以及部分页脚。页脚的问题是,我无法找到将长文本包装成多行的方法。所以我很好奇,在章节中,实现文本的“标准”或首选方式是什么?谢谢 在页脚中使用UILabel并将其设置为换行(行数=0)如果您在故事板中选择表格视图部分并在“页脚”中输入文本,它将自动换行 如果希望对字体进行更多控制,可以使用-[UITableV

我试图模仿iOS 7“快捷方式”这样的视图


我使用了一个UITableViewController,带有静态单元格、1个部分和2行。对于文本“创建一个快捷方式…”,我尝试了UILabel以及部分页脚。页脚的问题是,我无法找到将长文本包装成多行的方法。所以我很好奇,在章节中,实现文本的“标准”或首选方式是什么?谢谢

在页脚中使用UILabel并将其设置为换行(行数=0)

如果您在故事板中选择表格视图部分并在“页脚”中输入文本,它将自动换行


如果希望对字体进行更多控制,可以使用-[UITableViewDelegate tableView:ViewForFooterInstitution:][/p>设置自定义页脚视图。以下代码复制了上面显示的内容。我没有创建标签并返回它,而是创建了一个简单的UIView,该视图具有任意硬编码高度(您可能希望更改该高度以满足您的需要),然后创建了一个标签并将标签添加到视图中,返回视图,以便您可以像我创建框架时那样将标签居中放置在视图中。通过将行数设置为0,可以有效地告诉标签将有多行,我在标签上设置了一个自动调整大小的掩码,这样,如果视图旋转,文本仍将在视图中居中,每侧填充10个点。您还需要确保返回适当的页脚高度,以防以后决定在其下方添加某些内容,而不会与页脚重叠

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 80)];

    UILabel *explanationLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, self.view.frame.size.width - 20, 80)];
    explanationLabel.textColor = [UIColor darkGrayColor];
    explanationLabel.numberOfLines = 0;
    explanationLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    explanationLabel.text = @"Create a shortcut that will automatically expand into the word or phrase as you type.";
    [footerView addSubview:explanationLabel];

    return footerView;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 80;
}
给我这个:


使用UILabel时,所有其他答案都是正确的,但要达到100%相同的效果,必须使用标签的AttributeText属性。您还可以添加原始快捷方式屏幕截图中显示的缩进


SWIFT 4版

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {

    let footerView = UIView(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 80))

    let explanationLabel = UILabel(frame: CGRect(x: 10, y: 0, width: view.frame.size.width - 20, height: 80))
    explanationLabel.textColor = UIColor.darkGray
    explanationLabel.numberOfLines = 0
    explanationLabel.text = tableDataSectionFooters[section]
    footerView.addSubview(explanationLabel as? UIView ?? UIView())
    return footerView
}

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 80
}

谢谢,这成功了!我缺少的是表视图样式必须是“分组”的,否则页脚将不会换行automatically@Jesse:如何更改页脚文本的对齐方式?有什么想法吗?@Nit在Interface Builder中,通过将UIView拖动到表视图的底部来创建自定义页脚视图。在页脚视图中添加UILabel并设置UILabel的对齐方式。谢谢@marsant,我也错过了这一点,我被卡住了将近一个小时。请注意它应该是
UILabel*explanationLabel=[[UILabel alloc]initWithFrame:cDirectMake(10,0,self.view.frame.size.width-20,80)]
以使标签居中