根据 UISlider 的值更改 NSTime

Posted

技术标签:

【中文标题】根据 UISlider 的值更改 NSTime【英文标题】:Change NSTime with respect to the value of UISlider 【发布时间】:2013-10-02 06:28:10 【问题描述】:

关于如何用NsTimer 更改UISlider 值有很多问题和答案,但我需要创建相反的条件,我需要根据UISlider 值更改更改NSTimer 间隔,并希望滑块值以相反的方式工作。那么任何人都可以帮助实现这一目标吗?

感谢您的方法和时间:)

【问题讨论】:

【参考方案1】:

你可以在UISlierIBAction处设置Timer再次设置间隔值,方法如下:-

.h 类:-

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController


    IBOutlet UILabel *lblTimer;
    IBOutlet UISlider *timeSlider;

@property(nonatomic,strong)NSTimer *timer;

.m 类:-

- (void)viewDidLoad

    [super viewDidLoad];
    _timer=[[NSTimer alloc]init];
    _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateLable) userInfo:nil repeats:YES];

    // Do any additional setup after loading the view, typically from a nib.


- (void)didReceiveMemoryWarning

    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.

int i=0;
-(IBAction)changeSlider:(UISlider*)sender


    NSLog(@"%d",(int)sender.value);
    [_timer invalidate];

    _timer=[[NSTimer alloc]init];

    _timer=nil;
    _timer = [NSTimer scheduledTimerWithTimeInterval:(int)sender.value target:self selector:@selector(updateLable) userInfo:nil repeats:YES];
   // i=0;
    //text_field .text= [[NSString alloc] initWithFormat:@" Value %d ", (int)slider.value];



-(void)updateLable


    [lblTimer setText:[NSString stringWithFormat:@"%d",i]];
    i++;


代码输出

【讨论】:

我需要滑块以相反的方式工作,就像我在每个计时器闪烁手电筒一样,所以需要从最小值到最大值,但滑块值 min 是最大闪烁率,所以我需要以相反的方式跨度> 检查我更新的答案 伟大的工作人员感谢 +1 的努力,但正如您所看到的,如果您最小化滑块标签会快速更改值,但我需要完全相反。 这是合乎逻辑的,您需要在某些条件下设置先生,您是否要求设置滑块明智的计时器时间内部 让我们continue this discussion in chat

以上是关于根据 UISlider 的值更改 NSTime的主要内容,如果未能解决你的问题,请参考以下文章

UISLider 以正确的方式改变 UILabel 的值

根据 UISlider 值不断更新标签

在 UISlider 的缩略图上不断更改 UILabel 的值

当我想更改 `UISlider` 中的值时,scrollView 会向左滚动而不是滑块

UISlider 值更改时单元格未更新值

目标 C - 如何使用按钮单击操作更改 UIslider 值