当我将滑块的maximumValue更改为>时,我尝试使用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];
}
答案 0 :(得分:0)
<强> layoutSubviews 强> 布置子视图。
- (void)layoutSubviews
<强>讨论强>
此方法的默认实现在iOS 5.1及更早版本中不执行任何操作。否则,默认实现使用您设置的任何约束来确定任何子视图的大小和位置。
子类可以根据需要覆盖此方法,以执行其子视图的更精确布局。仅当子视图的自动调整大小和基于约束的行为不提供所需的行为时,才应覆盖此方法。您可以使用实现直接设置子视图的框架矩形。
您不应直接调用此方法。如果要强制进行布局更新,请在下次绘图更新之前调用 setNeedsLayout 方法。如果您想立即更新视图的布局,请调用 layoutIfNeeded 方法。
的反对意见