如何将UILabel放在UISlider的拇指上...这样,当我移动拇指.... UILabel也会移动....因为它是在拇指上...UILabel Over UISlider Thumb
任何想法?
如何将UILabel放在UISlider的拇指上...这样,当我移动拇指.... UILabel也会移动....因为它是在拇指上...UILabel Over UISlider Thumb
任何想法?
“旋钮”不适用于每个公共API,因此很难挂钩它 - 如果它是一个子视图,而不是直接绘制。
因此,您应该将标签添加到与滑块相同的视图中(请确保稍后添加它,以便出现在之上)。然后您可以听取价值变化事件并相应地放置您的标签。这是端点之间的线性缩放,你首先需要弄清楚,但它不应该太难。
编辑,代码:
yourLabel = [[UILabel alloc]initWithFrame:....];
// .. configure label
[[yourSlider superview] addSubview:yourLabel];
[yourSlider addTarget:self action:@selector(adjustLabelForSlider:) forControlEvents:UIControlEventValueChanged];
-(void)adjustLabelForSlider:(id)slider
{
float value = slider.value;
float min = slider.minimumValue;
float max = slider.maximumValue;
CGFloat newX = ...; // Calculate based on yourSlider.frame and value, min, and max
CGFloat newY = ...;
[yourLabel setCenter:CGPointMake(newX,newY)];
}
注:未经测试的代码;-)
这可能是非常有帮助... How to get the center of the thumb image of UISlider
试试这个
yourLabel = [[UILabel alloc]initWithFrame:....];
//Call this method on Slider value change event
-(void)sliderValueChanged{
CGRect trackRect = [self.slider trackRectForBounds:self.slider.bounds];
CGRect thumbRect = [self.slider thumbRectForBounds:self.slider.bounds
trackRect:trackRect
value:self.slider.value];
yourLabel.center = CGPointMake(thumbRect.origin.x + self.slider.frame.origin.x, self.slider.frame.origin.y - 20);
}
我可以克通过使用此片段可以获得最准确的价值。
+1它在视图的顶部设置移动标签。您可以调整lbl.center.y的自定义位置。 – HDdeveloper 2012-11-27 18:05:27
感谢您的回答,此行必须是:yourLabel.center = CGPointMake(thumbRect.origin.x + self.slider.frame.origin.x + yourLabel。 frame.size.width/2.f,self.slider.frame.origin.y - 20);虽然 – 2017-03-29 01:11:47
刚上imageview的
- (IBAction)valueChangedSlider:(id)sender {
handleView = [_slider.subviews lastObject];
label = [[UILabel alloc] initWithFrame:handleView.bounds];
label = (UILabel*)[handleView viewWithTag:1000];
if (label==nil) {
label = [[UILabel alloc] initWithFrame:handleView.bounds];
label.tag = 1000;
[label setFont:[UIFont systemFontOfSize:12]];
label.textColor = [UIColor redColor];
label.backgroundColor = [UIColor clearColor];
label.textAlignment = NSTextAlignmentCenter;
[handleView addSubview:label];
}
label.text = [NSString stringWithFormat:@"%0.2f", self.slider.value];
}
相同的答案加上滑块时的ImageView的添加标签与swift3:
let trackRect: CGRect = slider.trackRect(forBounds: slider.bounds)
let thumbRect: CGRect = slider.thumbRect(forBounds: slider.bounds , trackRect: trackRect, value: slider.value)
let x = thumbRect.origin.x + slider.frame.origin.x
let y = slider.frame.origin.y - 20
sliderLabel.center = CGPoint(x: x, y: y)
我想我懂了.. .......但可以给示例代码...? – Rony 2010-08-18 10:35:16
添加了一些代码... – Eiko 2010-08-18 10:44:02