中心对齐UITableViewCell的页脚

时间:2014-07-31 12:44:09

标签: ios objective-c uitableview

我怎样才能将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 *'

7 个答案:

答案 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;
}