Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 平移手势识别器(增加条)swift_Ios_Swift - Fatal编程技术网

Ios 平移手势识别器(增加条)swift

Ios 平移手势识别器(增加条)swift,ios,swift,Ios,Swift,上面这张图片就是我想要实现的。我已经完成了设计,但是平移手势功能尚未完成。我想做的是让用户上下滑动来调整每个列的级别。我想将屏幕的一半(垂直分割)指定为蓝色条,另一半指定为红色条。如果用户在屏幕右侧向上拖动手指,红色条将增加,蓝色条将减少(减少的意思是“条消失”)。如果用户在左侧向上拖动手指,同样适用。另外,如果用户向下拖动手指,则相反的情况会发生,拖动一侧的条数将减少,另一侧的条数将增加 你能给我一些反馈意见,我可以如何处理这个设计。书面代码或sudo代码将不胜感激 谢谢你 将UIPanges

上面这张图片就是我想要实现的。我已经完成了设计,但是平移手势功能尚未完成。我想做的是让用户上下滑动来调整每个列的级别。我想将屏幕的一半(垂直分割)指定为蓝色条,另一半指定为红色条。如果用户在屏幕右侧向上拖动手指,红色条将增加,蓝色条将减少(减少的意思是“条消失”)。如果用户在左侧向上拖动手指,同样适用。另外,如果用户向下拖动手指,则相反的情况会发生,拖动一侧的条数将减少,另一侧的条数将增加

你能给我一些反馈意见,我可以如何处理这个设计。书面代码或sudo代码将不胜感激


谢谢你

将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