我怎样才能将UITableViewCell的页脚对齐?
我尝试过使用以下代码但不起作用:
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {
UILabel *footerLabel = [[UILabel alloc] init];
footerLabel.text = @"Centered text";
footerLabel.textAlignment = NSTextAlignmentCenter;
return footerLabel.text;
}
我也试过创建一个UIView,但我得到一个Incompatible pointer types returning 'UIView *' from a function with result type 'NSString *'
答案 0 :(得分:23)
此代码将以页脚文本为中心:
- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section
{
UITableViewHeaderFooterView *footer = (UITableViewHeaderFooterView *)view;
footer.textLabel.textAlignment = NSTextAlignmentCenter;
}
它将匹配现有的UITableView页脚样式,并且还可以正确处理设备旋转和不同宽度,而无需混淆帧或约束。
答案 1 :(得分:5)
斯威夫特3:
override func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
let footer: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
footer.textLabel?.textAlignment = .center
}
像魅力一样工作。 :)
答案 2 :(得分:2)
使用以下代码:
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
UILabel *footerLabel = [[UILabel alloc] init];
footerLabel.text = @"Centered text";
footerLabel.textAlignment = NSTextAlignmentCenter;
return footerLabel
}
答案 3 :(得分:1)
Swift 3.0
override func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
let footer: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView
footer.textLabel?.textAlignment = .center
}
答案 4 :(得分:1)
Swift 2/3/4 + 一线安全解决方案:
override func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
(view as? UITableViewHeaderFooterView)?.textLabel?.textAlignment = .center
}
答案 5 :(得分:0)
只需使用tableView:viewForFooterInSection
- 它需要一个视图(可以是您的标签)。
答案 6 :(得分:0)
这是最短的:
- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UITableViewHeaderFooterView *)footerView forSection:(NSInteger)section {
footerView.textLabel.textAlignment = NSTextAlignmentCenter;
}