相关疑难解决方法(0)

Swift中的人工制品绘图

下面的代码通过覆盖触摸来绘制线条,但是在绘制时仍然存在伪像,如下图所示。

当在屏幕上进行锯齿形绘制时改变方向时,有时线会变成平坦的直角,而不是保持圆形。当在小圆圈上现场绘制时,也会出现伪影,当手指离开屏幕时,绘制点会闪烁半个圆圈,有时会留下半个圆圈和部分圆圈残留物。

伪影是断断续续的,不是完全一致或可预测的,这使得很难在代码中找到问题。它同时存在于模拟器和iOS7-iOS9的设备中。

包含两个绘制点和线的视频屏幕截图以及Xcode项目的zip文件以名为Archive.zip(23MB)https://www.dropbox.com/s/hm39rdiuk0mf578/Archive.zip?dl的文件上传到DropBox。= 0

问题:

1-在代码中,造成此点/半圆伪像的原因是什么?如何纠正?

在此处输入图片说明

class SmoothCurvedLinesView: UIView {
    var strokeColor = UIColor.blueColor()
    var lineWidth: CGFloat = 20
    var snapshotImage: UIImage?

    private var path: UIBezierPath?
    private var temporaryPath: UIBezierPath?
    private var points = [CGPoint]()
    private var totalPointCount = 0

    override func drawRect(rect: CGRect) {
        snapshotImage?.drawInRect(rect)

        strokeColor.setStroke()

        path?.stroke()
        temporaryPath?.stroke()
    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let touch: AnyObject? = touches.first
        points = [touch!.locationInView(self)]
        totalPointCount = totalPointCount + 1
    }

    override func touchesMoved(touches: Set<UITouch>, …
Run Code Online (Sandbox Code Playgroud)

drawing ios uibezierpath swift

3
推荐指数
1
解决办法
864
查看次数

标签 统计

drawing ×1

ios ×1

swift ×1

uibezierpath ×1