Ios 平移手势识别器(增加条)swift
上面这张图片就是我想要实现的。我已经完成了设计,但是平移手势功能尚未完成。我想做的是让用户上下滑动来调整每个列的级别。我想将屏幕的一半(垂直分割)指定为蓝色条,另一半指定为红色条。如果用户在屏幕右侧向上拖动手指,红色条将增加,蓝色条将减少(减少的意思是“条消失”)。如果用户在左侧向上拖动手指,同样适用。另外,如果用户向下拖动手指,则相反的情况会发生,拖动一侧的条数将减少,另一侧的条数将增加 你能给我一些反馈意见,我可以如何处理这个设计。书面代码或sudo代码将不胜感激Ios 平移手势识别器(增加条)swift,ios,swift,Ios,Swift,上面这张图片就是我想要实现的。我已经完成了设计,但是平移手势功能尚未完成。我想做的是让用户上下滑动来调整每个列的级别。我想将屏幕的一半(垂直分割)指定为蓝色条,另一半指定为红色条。如果用户在屏幕右侧向上拖动手指,红色条将增加,蓝色条将减少(减少的意思是“条消失”)。如果用户在左侧向上拖动手指,同样适用。另外,如果用户向下拖动手指,则相反的情况会发生,拖动一侧的条数将减少,另一侧的条数将增加 你能给我一些反馈意见,我可以如何处理这个设计。书面代码或sudo代码将不胜感激 谢谢你 将UIPanges
谢谢你 将UIPangestureRecognitor添加到两个条中,然后根据移动调整条值。当然,您需要首先看到哪个条位于手势开始点的后面。这些条可以是位图或UIBezierPath。要使更改看起来平滑,只需设置隐藏/显示条的动画(颜色或alpha更改)。更详细的示例意味着为您完成工作,所以您只需要自己解决其余的问题
let panGesture = UIPanGestureRecognizer(target: self, action: Selector("onPan:"))
barBackgroundView.addGestureRecognizer(panGesture)
func onPan(gestureRecognizer: UIPanGestureRecognizer) {
let point = gestureRecognizer.locationInView(barBackgroundView)
switch gestureRecognizer.state {
case .Began:
panStartPoint = point
case .Changed:
// Adjust the bars using panStartBarPoint.y + (point.y - panStartPoint.y)
}
}
非常感谢。我有一个问题:所以我现在能够检测到上下平移手势,现在添加每个单独的条,我应该怎么做?如果我总共有10个红色条,我应该创建10个变量并添加每个子视图,然后根据移动切换隐藏的true和false吗?有更好的方法吗?复制UIImageView是否更明智?我必须在@Tapani生成红色条。您有几个选项。我会选择第一个。1) 在自定义UIView的drawRect函数中绘制每个条。2) 将NSBezierPath用作条形图的图层遮罩,并更新路径以形成一个或多个条形图。3) 每个条对应一个UIImage