【问题标题】:add (how long ago) time to detailTextLabel in iOS在iOS中添加(多久前)时间到detailTextLabel
【发布时间】:2015-08-20 16:40:44
【问题描述】:

我有一个表格视图,并且在索引路径的行的单元格中我有

cell.textLabel.text = username;
cell.detailTextLabel.text = // here i would like to display time 

在 detailtextLabel 中,我想显示时间:5 分钟前,这样它会显示消息是多久之前来的。

这怎么可能?

【问题讨论】:

    标签: ios objective-c text uilabel nsdate


    【解决方案1】:

    如果你不想自己做,你可以使用这个很棒的库:https://github.com/mattt/FormatterKit

    寻找 TTTTimeIntervalFormatter。

    NSDate *aDate = ... ;
    TTTTimeIntervalFormatter *timeIntervalFormatter = [[TTTTimeIntervalFormatter alloc] init];
    NSTimeInterval timeInterval = [aDate timeIntervalSinceNow];
    cell.detailTextLabel.text = [self.timeIntervalFormatter stringForTimeInterval:timeInterval];
    

    【讨论】:

    • 在 NSDate *adate 我应该把 NSDate alloc init 放进去
    • 取决于您要显示的内容。如果您想显示某物的创建时间,您可以将某物的创建日期放在那里。
    • 那么 NSDate alloc initwithtimeinterval:1 还是 ?
    • 或者,如果我从 parse.com 获取数据,我会传入检索到的消息
    【解决方案2】:

    服务器或后端必须向您发送时间戳。大多数情况下,它是一个 Unix 时间戳。

    您可以从中创建一个 NSDate 对象,然后将其转换为用户友好的格式并显示为 NSString。

    看起来像

    NSDate *date = [NSDate dateWithTimeIntervalSince1970:unixTimeStamp];
    NSDate *dateFromatter = [NSDateFormatter new];
    [dateFormatter setDateFormat:@"HH:mm:ss"];
    NSString *formatString = [dateFormatter stringFromDate:date];
    cell.detailTextLabel.text = formatString;
    

    【讨论】:

    • 我正在使用 parse.com。我是 iOS 新手,你能告诉我怎么做吗
    • 我在第一行出现了一些错误,它显示 unixTimeStamp 未声明的标识符。第二行说 NSDateFormatted 不能传递给 NSDate。第三行说 NSDate 没有声明 setDateFormatt。我声明了 2 个属性 @property (nonatomic, strong) NSDate *date; @property (nonatomic, strong) NSDateFormatter *dateFormat;
    • @smithyy 为此,您应该发布另一个问题。此外,您可能还需要阅读 parse。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    相关资源
    最近更新 更多