iPhone为自定义滑块计算0-50之间的数字

Posted

技术标签:

【中文标题】iPhone为自定义滑块计算0-50之间的数字【英文标题】:iPhone calculate numbers between 0-50 for custom slider 【发布时间】:2017-03-10 09:46:17 【问题描述】:

当用户在滑块上左右移动时,我想计算 0 到 50 之间的数字。我正在使用诸如但没有成功的公式。

(point.x + 100) / 20

point.x 是一个 CGPoint,通过 locatioOfView: 方法在两个 UIView 之间获取

CGPoint point = [sender locationInView:self.viewBaseSlider];

注意:这里 self.viewBaseSlider 不是滑块,而是自定义视图。

有什么想法吗?

【问题讨论】:

你的问题到底是什么? 可以直接获取self.viewBaseSlider.value @anbu.Karthik viewBaseSlider 是一个自定义的uiview @DarshanMothreja - 然后最初获取子视图,然后子视图等于您的滑块,然后获取直接滑块值 为什么不让 viewBaseSlider 成为UIControl 的子类,并在它移动时设置它的值,然后发送didChange 动作?然后你可以像使用 UISlider 一样使用它 【参考方案1】:

您必须将 location 从 0 到 your-custom-view-width 的范围转换为 0 到 your-slider-max 的范围(在本例中为 50)。

这是我在swift 中的看法:

let maxPoints = 50
let customViewWidth = customView.frame.size.width
let pointWidth = Float(customViewWidth) / Float(maxPoints)

if let touch = touches.first 
    let location = touch.location(in: customView)
    let point = Int(roundf(Float(location.x) / pointWidth))
    print("Selected \(point)")

这是一个工作示例,其中灰色区域为customView,控制台中的输出来自单击灰色区域的开头、中间和结尾:

【讨论】:

以上是关于iPhone为自定义滑块计算0-50之间的数字的主要内容,如果未能解决你的问题,请参考以下文章

如何将箭头控件设置为自定义按钮

在iPhone上保存从0到3的数字长链(NSArray),有效的方式

iPhone 的自定义 UISlider

如何在表格视图单元格中快速自定义和实现滑块

iPhone 在 IB 中为自定义 UIView 创建 UIButton

ios10自定手势有啥用