设置Uislider的最大值,导致奇怪的行为



我有一个非常奇怪的问题,试图使用uislider,当我将滑块的最大值更改为> 1.0时,我会在视图上出现这个奇怪的重复滑块。请帮助:)

slider.maximumvalue = 10.0时,它的外观;http://imagizer.imageshack.us/v2/800x600q90/827/kf12.png

slider.maximumvalue = 1.0时,它的外观;http://imagizer.imageshack.us/v2/800x600q90/197/bcvf.png

我是否缺少Uislider的某些行为?这是我用于配置滑块的代码...

-(void)layoutSubviews
{
    [super layoutSubviews];
    CGSize viewSize = self.contentSubview.bounds.size;
    self.timeSlider.frame = CGRectMake(viewSize.width / 2 - 80,
                                       viewSize.height / 2 - 12,
                                       viewSize.width / 2,
                                       24);
    -(void)configureSubviews
    {
        [super configureSubviews];
        self.timeSlider = [[UISlider alloc] initWithFrame:CGRectZero];
        self.timeSlider.continuous = YES;
        self.timeSlider.minimumValue = 0;
        self.timeSlider.maximumValue = 1.0f;
        [self.timeSlider addTarget:self action:@selector(timeValueChanged:) forControlEvents:UIControlEventValueChanged];
        [self.contentSubview addSubview:self.timeSlider];
    }
    -(void)timeValueChanged:(UISlider *)slider
    {
        self.timeValueLabel.text = [NSString stringWithFormat:@"%d min", (int)floorf(slider.value)];
        [self layoutSubviews];
    }

layoutsubviews 列出子视图。

- (void)layoutSubviews

讨论

此方法的默认实现在iOS 5.1及更早之前无能为力。否则,默认实现使用您设置的任何约束来确定任何子视图的大小和位置。

子类可以根据需要覆盖此方法,以执行其子视图的更精确的布局。仅当子视图的自动化和基于约束的行为不提供所需的行为时,才应覆盖此方法。您可以使用实现直接设置子视图的框架矩形。

您不应直接调用此方法。如果要强制布局更新,请在下一个绘图更新之前调用 setNeedSlayOut 方法。如果要立即更新视图的布局,请致电 layoutifneed methot。

Apple Doc

引用

最新更新