从 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

UIPickerView,无法从数组中获取数据

UIPickerView非交互式

将 UIPickerView 选择保存到 NSUserDefaults swift

如何从UIPickerView获取选定的值

编辑 UIPickerView