scrollViewDidEndZooming后自定义视图渲染

时间:2015-01-05 20:18:40

标签: ios swift uiscrollview

我有一个带有drawRect代码的CustomView,如下所示:

  

for var i = 0;我<米; ++我

    {
        // just draw lines
        UIColor.blackColor().setStroke()
        let line = UIBezierPath()
        line.moveToPoint(CGPoint(x: 0, y:0 + CGFloat(i) * cellWidth))
        line.addLineToPoint(CGPoint(x: size.width, y:0 + CGFloat(i) * cellWidth))
        line.closePath()
        line.stroke()
    }

scrollViewDidEndZooming 中,我正在尝试执行类似customView.setNeedsDisplay()的操作并重新绘制视图以使最后一个看起来不错,但结果会以这种方式显示(行具有不同的宽度):

odd lines

如何做到这一点?

1 个答案:

答案 0 :(得分:0)

** drawRect **是一种连续调用的重方法。通常认为在其中添加线条是一种不好的做法。

你得到这个的原因是多条线被绘制在同一个位置,所以看起来好像它们的宽度不同。

scrollViewDidEndZooming 内,检查滚动视图的内容偏移量,如果不是(0,0),请将其设置为CGPointZero。

希望这会有所帮助..