2011-12-26 69 views
0

我需要一个滑块,用于在步幅15分钟的12-00 AM到11-45 PM的滑块标签中实时显示。但我不知道该怎么做。有人给我一些建议吗?带有实时标签的滑块

回答

1

如果你只需要使用滑块时间选择,请使用sliderChanged下面的代码:处理器:

- (IBAction)onSliderChange:(id)sender { 

    UISlider *slider = (UISlider *)sender; 

    NSUInteger numberOfSlots = 24*4 - 1; //total number of 15mins slots 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"h-mm a"]; 

    NSDate *zeroDate = [dateFormatter dateFromString:@"12-00 AM"]; 

    NSUInteger actualSlot = roundf(numberOfSlots*slider.value); 
    NSTimeInterval slotInterval = actualSlot * 15 * 60; 

    NSDate *slotDate = [NSDate dateWithTimeInterval:slotInterval sinceDate:zeroDate]; 
    [dateFormatter setDateFormat:@"h-mm a"]; 

    self.timeLabel.text = [dateFormatter stringFromDate:slotDate]; 
} 
+0

男士们最大的谢意!丹尼斯真的是我需要的。 – stalk 2011-12-26 16:02:54

+0

我很高兴它确实有帮助=) – Denis 2011-12-26 17:37:16

+0

你好@Denis,如何做到这一点从设备设置24小时格式,我的意思是,如果用户选择24小时格式,这种逻辑不起作用。 – Ranjit 2014-04-03 13:21:51

0

创建一个滑块,并在视图控制器中,滑块上的值发生更改时,滑块会更改标签。要设置值的范围,请在属性下的故事板中更改范围(您也可以将更改间隔设置为15步)。你可能想给它在几分钟或类似的东西的时间间隔,然后只将其转换成时间:)

- (IBAction)sliderChanged:(UISlider *)sender 
+0

我需要用户通过滑动滑块进行选择的时间值,这次应该在用户的标签中。 – stalk 2011-12-26 15:27:10

-1

您可以使用NSTimer调用的方法每15分钟与当前时间更新滑块/标签。

您可能想看看NSDateFormatter,它可能会有助于为您的日期获取正确的字符串表示形式。

+0

请解释downvote – Saphrosit 2014-04-05 14:16:58

0

我加入另一个答案添加代码。是的,您可以从滑块获取值,然后在将值转换为时间后设置标签的文本。像这样:

// Add 0.5 to slider value and truncate it to an integer by type casting it as integer 
int sliderIntValue = (int)([sender value] + 0.5f); 

//do some conversion and set the label to the value 

self.sliderLabel.text = newLabelText;