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