我的设置
我正在尝试复制Google Now的卡界面.
我有一个UIView(内部)a的子视图UIScrollView.两者都是相同的UIViewController.该UIView有一个UIPanGestureRecognizer被连接到它UIViewController.
将UIScrollView用于向上和向下滚动.该UIPanGestureRecognizer用于滑开UIView.
问题
当我触摸UIView(卡片)时我无法滚动
问题
如何实现在卡UIGestureRecognizerDelegate上启用gestureRecognizer(_:shouldRecognizeSimultaneouslyWithGestureRecognizer:)以便它可以UIScrollView滚动?
我花了几个小时试图解决这个问题,我非常感谢你的帮助.
我正在绘制条形图,并且我有几个堆叠的CGRect直接相互叠加(即一个rect的minY是前一个rect的maxY).但是,这些地方之间仍然存在半透明的差距.有没有什么办法解决这一问题?我发现在绘制接触相邻弧时也会发生这种情况.
这是我的意思截图:
通过放大,我已经确认这不仅仅是在相邻的红色和蓝色之间发现的视错觉.我很感激任何意见.
var upToNowSegmentTotal: CGFloat = 0
for k in 0..<data[i].bars[j].segments.count {
var segmentRect: CGRect = CGRect()
if barDirection == "vertical" {
let a: CGFloat = translateY(upToNowSegmentTotal)
let b: CGFloat = translateY(upToNowSegmentTotal + data[i].bars[j].segments[k].length)
upToNowSegmentTotal += data[i].bars[j].segments[k].length
var rectY: CGFloat
if a > b {
rectY = b
} else {
rectY = a
}
segmentRect = CGRect(
x: barWidthPosition,
y: rectY,
width: barWidthAbsolute,
height: abs(a - b)
)
}
}
Run Code Online (Sandbox Code Playgroud)
忽略关于条的宽度的东西.这是translateY函数.基本上,它将坐标从绘图窗口转换为绘制的x/y内容.请记住,因为窗口/绘图区域在绘制的rects之间不会改变,所以相同的y输入将始终产生相同的结果.
private func translateY(y: CGFloat) -> CGFloat { …Run Code Online (Sandbox Code Playgroud)