Ios 设置导致奇怪行为的UISlider的最大值

Ios 设置导致奇怪行为的UISlider的最大值,ios,objective-c,uislider,Ios,Objective C,Uislider,我在尝试使用UISlider时遇到了一个非常奇怪的问题,当我将滑块的最大值更改为>1.0时,我的视图中出现了一个奇怪的重复滑块。请帮忙:) 以下是slider.maximumValue=10.0时的情况; 下面是slider.maximumValue=1.0时的情况; 我缺少一个滑翔者的一些行为吗?这是我配置滑块的代码 -(void)layoutSubviews { [super layoutSubviews]; CGSize viewSize = self.content

我在尝试使用UISlider时遇到了一个非常奇怪的问题,当我将滑块的最大值更改为>1.0时,我的视图中出现了一个奇怪的重复滑块。请帮忙:)

以下是slider.maximumValue=10.0时的情况;

下面是slider.maximumValue=1.0时的情况;

我缺少一个滑翔者的一些行为吗?这是我配置滑块的代码

-(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];
    }

布局子视图 布局子视图

- (void)layoutSubviews
讨论

此方法的默认实现在iOS 5.1及更早版本上不起任何作用。否则,默认实现将使用您设置的任何约束来确定任何子视图的大小和位置

- (void)layoutSubviews
子类可以根据需要重写此方法,以便对其子视图执行更精确的布局。仅当子视图的自动调整大小和基于约束的行为不提供所需的行为时,才应重写此方法。可以使用实现直接设置子视图的框架矩形

不应直接调用此方法。如果要强制布局更新,请在下次图形更新之前调用setNeedsLayout方法。如果要立即更新视图的布局,请调用layoutifneedd方法


引用方式

我看不到这两个图像有什么不同。请确保仅调用一次ConfigureSubView查看左上角的第一个图像它是“显示滑块”拖动按钮它不在第二个图像中。我认为这是不同的@rmaddyOK,我现在看到它在左上角有半个拇指。你不应该直接调用layoutSubviews方法。我不知道我不应该直接调用layoutSubviews。我会按照你的建议修理它。谢谢