0
我有一個滑塊,並希望在圖像視圖中顯示它的值,該圖像視圖位於滑塊的上方,並與滑塊的拇指接觸。 我已經添加了ImageView和標籤以顯示UIView中的值並使其隨着滑塊拇指的移動而移動。但由於某種原因,它不顯示滑塊的值,儘管我檢查了我們正在接收該值。滑塊值沒有顯示在我的imageView?
-(void)addSliderX:frame andminimumValue:(int)min andmaximumValue:(int)max andSliderValue:(int)value{
CGRect frame1 = CGRectFromString(frame);
statSlider = [[UISlider alloc]initWithFrame:frame1];
[statSlider setMinimumTrackImage:[[UIImage imageNamed:@"greenSlider.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:10.0] forState:UIControlStateNormal];
[statSlider setThumbImage:[UIImage imageNamed:@"sliderBar_greenThumb.png"] forState:UIControlStateNormal];
[statSlider setMinimumValue:min];
[statSlider setMaximumValue:max];
statSlider.continuous = YES;
positionX = value;
[statSlider addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventValueChanged];
[statSlider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventTouchUpInside];
UIView * bubble = [[UIView alloc]init];
UIImageView * back = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"sliderBar_handle_number.png"]];
UILabel * val = [[UILabel alloc]init];
bubble.tag = 1;
back.tag = 2;
val.tag = 3;
bubble.alpha = 0;
back.alpha = 0;
val.alpha = 0;
[self.view addSubview:statSlider];
[self.view addSubview:bubble];
[bubble addSubview:back];
[bubble addSubview:val];
}
-(void)valueChanged:(id)sender{
UISlider *localSlider = (UISlider *)sender;
greenSliderValue = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%3.0f", [localSlider value]]];
dsp =[greenSliderValue floatValue];
UIView * bubble = (UIView*)[self.view viewWithTag:1];
UIImageView * back = (UIImageView*)[bubble viewWithTag:2];
UILabel * val = (UILabel*)[bubble viewWithTag:3];
val.text = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%3.0f", [localSlider value]]];
[val setText:[NSString stringWithFormat:@"%3.0f", [localSlider value]]];
UIFont * font = YEAR_LABEL_FONT;
val.font = font;
val.textColor = DESC_Color_White;
bubble.alpha = 1;
back.alpha = 1;
val.alpha = 1;
CGFloat sliderMax = localSlider.maximumValue;
CGFloat sliderMin = localSlider.minimumValue;
CGFloat sliderMaxMinDiff = sliderMax - sliderMin;
CGFloat sliderValue = dsp;
CGFloat xCoord = 65.0-42.0;
CGFloat yCoord = (CGFloat)positionX;
CGFloat halfMax = (sliderMax+sliderMin)/2.0;
if (sliderValue > halfMax)
{
xCoord = xCoord-(sliderValue-halfMax);
}
else
{
xCoord = xCoord + (halfMax-sliderValue);
}
xCoord= xCoord + (600/sliderMaxMinDiff)*(sliderValue-sliderMin);
back.frame = CGRectMake(xCoord,yCoord,84,47);
}
不,它顯示的初始值是17。 – Ashutosh 2011-04-20 17:37:12