gpt4 book ai didi

iphone - 如何使用一次触摸更改 UISlider 值?

转载 作者:技术小花猫 更新时间:2023-10-29 10:56:52 24 4
gpt4 key购买 nike

我正在开发我的第一个 iOS 应用程序,其中包含一个 UISlider。我知道如何在拖动 UISlider 时获取值。但是对于我的应用程序,我需要通过一次触摸来获取 slider 的值;即,如果我触摸 UISlider 中的某处,UILabel 应该显示其正确值。

这样可以吗。任何教程或代码都会非常有帮助。

最佳答案

这里的tapCount是在.h文件中声明的int变量

- (void)viewDidLoad
{
tapCount = 0; // Count tap on Slider

UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sliderTapped:)];
[slider addGestureRecognizer:gr];

}

- (void)sliderTapped:(UIGestureRecognizer *)g
{
/////////////// For TapCount////////////

tapCount = tapCount + 1;
NSLog(@"Tap Count -- %d",tapCount);

/////////////// For TapCount////////////

UISlider* s = (UISlider*)g.view;
if (s.highlighted)
return; // tap on thumb, let slider deal with it
CGPoint pt = [g locationInView: s];
CGFloat percentage = pt.x / s.bounds.size.width;
CGFloat delta = percentage * (s.maximumValue - s.minimumValue);
CGFloat value = s.minimumValue + delta;
[s setValue:value animated:YES];

NSString *str=[NSString stringWithFormat:@"%.f",[self.slider value]];
self.lbl.text=str;
}

对于 Swift 用户

override func viewDidLoad()
{
super.viewDidLoad()

tapCount = 0
let gr = UITapGestureRecognizer(target: self, action: #selector(self.sliderTapped(_:)))
slider.addGestureRecognizer(gr)

}

func sliderTapped(_ g: UIGestureRecognizer) {

/////////////// For TapCount////////////
tapCount = tapCount + 1
print("Tap Count -- \(tapCount)")
/////////////// For TapCount////////////

let s: UISlider? = (g.view as? UISlider)
if (s?.isHighlighted)! {
return
}

// tap on thumb, let slider deal with it
let pt: CGPoint = g.location(in: s)
let percentage = pt.x / (s?.bounds.size.width)!
let delta = Float(percentage) * Float((s?.maximumValue)! - (s?.minimumValue)!)
let value = (s?.minimumValue)! + delta
s?.setValue(Float(value), animated: true)
let str = String(format: "%.f", slider.value)
lbl.text = str
}

关于iphone - 如何使用一次触摸更改 UISlider 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14356528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com