我有一个非常奇怪的问题,试图使用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