如何获取 UISlider 拇指位置
How to get UISlider thumb position
如何知道 UISlider 拇指的位置?
当我按下按钮时,我想在当前滑块拇指位置添加一个标志。
如何获取当前拇指位置以便添加标志?
这是我的同步代码:
_positionSlider.value = _mediaplayer.position;
滑块应该是这样的:
试试这个,
首先创建 UIImageView
@interface ViewController ()
{
UIImageView *imageView;
}
并在 viewDiload() 函数中写入以下代码
imageView = [[UIImageView alloc]initWithFrame:CGRectMake(self.slider.frame.origin.x, self.slider.frame.origin.y-20, 20, 10)];
imageView.image = [UIImage imageNamed:@"navigateImage.png"];
[self.view addSubview:imageView];
[self.slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
并添加这个滑块事件函数
-(void)sliderValueChanged:(UISlider *)slider{
CGRect trackRect = [self.slider trackRectForBounds:self.slider.bounds];
CGRect thumbRect = [self.slider thumbRectForBounds:self.slider.bounds
trackRect:trackRect
value:self.slider.value];
CGRect r = [imageView frame];
r.origin.x = thumbRect.origin.x;
[imageView setFrame:r];
NSLog(@"%f",thumbRect.origin.x);
}
Swift版本:
@objc func sliderChanged() {
let trackRect = slider.trackRect(forBounds: slider.bounds)
let thumbRect = slider.thumbRect(forBounds: slider.bounds, trackRect: trackRect, value: slider.value)
arrowLeadingConstraint.update(offset: thumbRect.midX)
}
如何知道 UISlider 拇指的位置?
当我按下按钮时,我想在当前滑块拇指位置添加一个标志。
如何获取当前拇指位置以便添加标志?
这是我的同步代码:
_positionSlider.value = _mediaplayer.position;
滑块应该是这样的:
试试这个, 首先创建 UIImageView
@interface ViewController ()
{
UIImageView *imageView;
}
并在 viewDiload() 函数中写入以下代码
imageView = [[UIImageView alloc]initWithFrame:CGRectMake(self.slider.frame.origin.x, self.slider.frame.origin.y-20, 20, 10)];
imageView.image = [UIImage imageNamed:@"navigateImage.png"];
[self.view addSubview:imageView];
[self.slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
并添加这个滑块事件函数
-(void)sliderValueChanged:(UISlider *)slider{
CGRect trackRect = [self.slider trackRectForBounds:self.slider.bounds];
CGRect thumbRect = [self.slider thumbRectForBounds:self.slider.bounds
trackRect:trackRect
value:self.slider.value];
CGRect r = [imageView frame];
r.origin.x = thumbRect.origin.x;
[imageView setFrame:r];
NSLog(@"%f",thumbRect.origin.x);
}
Swift版本:
@objc func sliderChanged() {
let trackRect = slider.trackRect(forBounds: slider.bounds)
let thumbRect = slider.thumbRect(forBounds: slider.bounds, trackRect: trackRect, value: slider.value)
arrowLeadingConstraint.update(offset: thumbRect.midX)
}