UIBezierPath 到 NSData 到 Server 到 Android

Posted

技术标签:

【中文标题】UIBezierPath 到 NSData 到 Server 到 Android【英文标题】:UIBezierPath to NSData to Server to Android 【发布时间】:2015-06-23 08:54:18 【问题描述】:

目前我有一个符合 NSCoding 的类,其中包含 UIBezierPath 和 UIColor。

    required init(coder aDecoder: NSCoder) 
        super.init()
        self.lineColor = aDecoder.decodeObjectForKey("color") as! UIColor
        self.bezierPath = aDecoder.decodeObjectForKey("bezier") as! UIBezierPath
    

    func encodeWithCoder(aCoder: NSCoder) 
        aCoder.encodeObject(lineColor, forKey: "color")
        aCoder.encodeObject(bezierPath, forKey: "bezier")
    

我通过 NSKeyedArchiver 实现了这一点

NSKeyedArchiver.archivedDataWithRootObject(path)

并将其保存在服务器上 (parse.com) 我可以在 ios 上毫无问题地解压它。但是如何兼容安卓呢?

【问题讨论】:

【参考方案1】:

我同意韦恩的观点。您可以调用 self.bezierPath.CGPath 来检索 CGPath,然后您可以使用以下答案将其导入 SVG。

How to convert CGPath to SVG

然后您可以以中性格式发送它。

【讨论】:

【参考方案2】:

您需要将路径和颜色转换为某种通用格式并以通用格式导出。像 SVG 之类的东西,包括 RGBA 值。 UIBezierPath 和密钥归档是具有私有二进制实现的 iOS 特定项目 - 尝试在 android 上使用它们会花费你很长时间,而且不会成为未来的证据。

【讨论】:

以上是关于UIBezierPath 到 NSData 到 Server 到 Android的主要内容,如果未能解决你的问题,请参考以下文章

如何将圆角添加到 UIBezierPath 自定义矩形?

在 UIImageView 上绘制 UIBezierPath

为 UIBezierPath 着色

MKPolyline -> NSKeyedArchiver -> NSData SIGABRT

NSData到UIImage

将 NSData 数组保存到 CoreData