3

我有一个在 iOS7 之前运行良好的应用程序,但现在在 tableview 单元格的文本中存在空格问题(样式 Right Detail)。表格视图中的某些单元格有披露指示符,而有些则没有,因此为了将所有文本向右对齐,我在没有披露指示符的单元格中的文本中添加了一些额外的空格。查看日期格式化程序(YYYY 之后的空格):

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithAbbreviation : @"UTC"];
[formatter setTimeZone:timeZone];
[formatter setDateFormat:@"dd MMM YYYY    "]; // includes 4 spaces at the end for alignment
NSString *dateUTC = [formatter stringFromDate:[NSDate date]]; //get todays UTC date
DateCell.detailTextLabel.text = dateUTC;  

将欣赏一种更好的方法,也可以在 IOS7 中使用。

4

5 回答 5

2

我认为您应该停止单独添加空格并覆盖 UITableViewCell 的layoutSubviews方法,如下所示:

- (void)layoutSubviews {
    [super layoutSubviews];

    CGRect newFrame = self.detailTextLabel.frame;
    newFrame.size.width -= 10;
    self.detailTextLabel.frame = newFrame;
}
于 2013-10-20T08:07:31.550 回答
2

如果您将不带显示指示器的视图上的附件视图设置为宽度等于显示指示器的清晰 UIView,该怎么办...

那将是最好的选择,因为您永远无法确定在不同字体/字符上需要多少空格作为字符宽度

于 2013-10-20T09:12:41.513 回答
2

最好/唯一的方法是使用“UITableViewCell”子类。

此外,如果您使用“UIStoryboard”,则可以使用静态单元格。

然后,您可以完全按照您希望的方式布置视图。

使用空格绝对不是答案。尤其是在 iOS 7 中,字体大小由用户偏好决定。如果他们增加字体大小,那么你的四个空格突然太大了,看起来不正确。

于 2013-10-20T11:20:02.897 回答
1

谢谢大家的意见,我完全同意使用空格来对齐标签/文本不是一个好主意,但它做了一段时间的工作...... :) 我设法用 nomannasim 使用 layoutSubviews 的想法正确对齐标签,只是稍微修改了他的代码来为我工作。

- (void)layoutSubviews
{
[super layoutSubviews];
CGRect newFrame = self.detailTextLabel.frame;
newFrame.origin.x = newFrame.origin.x - 20;
self.detailTextLabel.frame = newFrame;
}
于 2013-10-22T04:38:14.507 回答
1

尝试使用 stringByPaddingToLegth 以在字符串中添加空格:

yourString = [yourString stringByPaddingToLength:4 withString:@" " startingAtIndex:[yourString length]];

希望能帮助到你!

于 2013-10-20T09:00:34.707 回答