从 UIPickerView 中选择的 NSTimer 在 UILabel 中显示秒数
Posted
技术标签:
【中文标题】从 UIPickerView 中选择的 NSTimer 在 UILabel 中显示秒数【英文标题】:Display seconds in a UILabel from a NSTimer which was selected from UIPickerView 【发布时间】:2015-07-22 14:49:11 【问题描述】:如何在 NSTimer 的标签中显示秒数?
imageVC.h
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;
imageVC.m
-(void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
imageViewController *pickerView = [[imageViewController alloc] init];
[NSTimer scheduledTimerWithTimeInterval:10
target:self
selector:@selector(timeout)
userInfo:nil
repeats:NO];
];
任何帮助将不胜感激。
谢谢
【问题讨论】:
你想在标签上显示你的计时器时间吗? 是的,你知道如何将 UIPicker 链接到 NStimer 吗?非常感谢 是的,我想你想从选择器中选择时间,对吧?或者别的什么。 您可以使用日期选择器和时间模式来选择时间 【参考方案1】:试试这个将timeOut值设置为你想要的最大值。
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeout) userInfo:nil repeats:YES];
-(void) timeout
if (timeCount==0)
[timer invalidate];
else
timeCount = timeCount-1;
timeLabel.text = [NSString stringWithFormat:@"%d",timeCount];
【讨论】:
感谢回复 timeCount 抛出一个异常,说用 TimeZone 替换。所以我应该在界面中声明 int timeCount 是的,您可以将其声明为整数并将其值设置为您想要的最大限制,或者如果您希望增量计数最初将时间计数设置为 0 并在达到最大限制时使其无效,则可以更改它。 【参考方案2】:添加另一个以 1 秒间隔更新标签的计时器
-(void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
imageViewController *pickerView = [[imageViewController alloc] init];
[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(timeout) userInfo:nil repeats:NO];
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(setTimeToLabel) userInfo:nil repeats:NO];
- (void)setTimeToLabel
counterPrivateVar += 1;
self.lbl.text = [NSString stringWithFormat:@"%d", counter];
【讨论】:
counterPrivateVar 正在引发异常。 我的意思是你需要减速一个变量... int counterPrivateVar 在你的 h 或 m 文件中 - @interface YourClassName : UIViewController int counterPrivateVar以上是关于从 UIPickerView 中选择的 NSTimer 在 UILabel 中显示秒数的主要内容,如果未能解决你的问题,请参考以下文章
UIPickerView - 第一行选择不调用 didSelectRow