小编Def*_*aur的帖子

如何使用UIGestureRecognizerDelegate?

我的设置

我正在尝试复制Google Now的卡界面.

我有一个UIView(内部)a的子视图UIScrollView.两者都是相同的UIViewController.该UIView有一个UIPanGestureRecognizer被连接到它UIViewController.

UIScrollView用于向上和向下滚动.该UIPanGestureRecognizer用于滑开UIView.

问题

当我触摸UIView(卡片)时我无法滚动

问题

如何实现在卡UIGestureRecognizerDelegate上启用gestureRecognizer(_:shouldRecognizeSimultaneouslyWithGestureRecognizer:)以便它可以UIScrollView滚动?

我花了几个小时试图解决这个问题,我非常感谢你的帮助.

uiscrollview uiview ios uipangesturerecognizer swift

6
推荐指数
1
解决办法
7484
查看次数

CGRect之间的像素差距

我正在绘制条形图,并且我有几个堆叠的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)

ios swift

2
推荐指数
1
解决办法
419
查看次数