如何在ios中随着时间的推移保持标签的更新

如何在ios中随着时间的推移保持标签的更新,ios,nsdate,Ios,Nsdate,在ios中发布帖子时,我如何使UILabel随着时间的推移而不断更新。例如,如果>刚刚发布的帖子应该是0,随着时间的推移,ios中的UILabel会变为>1分钟、2分钟…1小时、2小时…1天,等等 我是ios开发的新手 谢谢你的帮助 如果我能正确理解您的问题,您需要为此使用。在iOS中定期做一些事情非常容易 在主代码中: [NSTimer scheduledTimerWithTimeInterval: 1.0 target: se

在ios中发布帖子时,我如何使UILabel随着时间的推移而不断更新。例如,如果>刚刚发布的帖子应该是0,随着时间的推移,ios中的UILabel会变为>1分钟、2分钟…1小时、2小时…1天,等等 我是ios开发的新手 谢谢你的帮助


如果我能正确理解您的问题,您需要为此使用。

在iOS中定期做一些事情非常容易

在主代码中:

[NSTimer scheduledTimerWithTimeInterval: 1.0
                                 target: self
                               selector: @selector(doSomething:)
                               userInfo: nil
                                repeats: YES];
然后添加剂量测定法:

- (void)doSomething:(NSTimer *)timer {
    NSLog(@"We did it!");
}

首先,您需要保留用户发布的日期。您可以使用以下工具轻松完成此操作:

NSDate* postedDate = [NSDate now];
如果您想从该时间中找出剩余的秒数,您可以使用:

NSTimeInterval timeDiff = [[NSDate date] timeIntervalSinceDate:postedDate];
这会给您从发布日期算起的秒数-您需要格式化输出

要保持标签自身更新,应使用NSTimer:

[NSTimer scheduledTimerWithTimeInterval: 1.0f
                                 target: self
                               selector: @selector(updateLabel:)
                               userInfo: nil
                                repeats: YES];

updateLabel将把timeDiff格式化为人类可读的格式,如1分钟/天等。

是的。但它是否相应地改变uilabel的格式?就像在facebook上,当我们发布一条0秒前显示的评论时,随着时间的推移,它会不断更新UILabel。你必须连接updateLabel:要真正更新标签,它不会自行更新,并根据timeDiff设置文本。我不能提供现成的解决方案——这在很大程度上取决于类的外观和应用程序设计的完成方式。例如:如果您有自定义表格单元格-您应该在初始化单元格时设置NSStimer,并在自定义单元格类上实现updateLabel。是的,我有一个自定义表格视图单元格,它有一个注释标签和发布时的时间标签,现在,如果用户键入注释,它会通过在uitableview中添加一行来显示注释,但我如何设置表上的时间这就是问题所在。必须将时间与当前时间进行比较,因此uilabel应该更改,然后您需要为uitableview保留上一次发布的发布日期,并按照上面的建议执行。通过timeIntervalSinceDate,您可以获得上次发布的时间。我不知道你在哪里还有问题,抱歉。我有一个自定义的表视图单元格,它有一个标签,用于评论和发布时的时间,现在,如果用户键入注释,它会通过在uitableview中添加一行来显示注释,但我如何设置表上的时间这就是问题所在。时间必须与当前时间进行比较,因此uilabel应该更改。我认为uitableview与时间无关,如果使用表中的某个标签设置日期或时间,则只需根据计时器和日期间隔更新标签值。