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),有效的方式