jjzjj

swift - 如何在 Swift 的数组中存储 2 种类型的 CGPath 定义

我想要一个数组来存储生成四边形和三次边曲线所需的数据。为此,我做了以下工作:定义了具有属性start、end、cp1和cp2的CubicCurve结构定义了具有属性start、end和cp的QuadCurve结构定义了一个名为Path的枚举,其中cubicCurve具有CubicCurve关联值,quadCurve具有QuadCurve关联值。定义了一个Path类型的数组[Path]()我定义了一个CubicCurve但不能将它添加到数组中,因为数组是Path类型:structCubicCurve{varstart:CGPointvarend:CGPointvarcp1:CGPoint

swift - Xamarin 中的 CGMutablePath

我正在尝试为我的Xamarin.iOS应用翻译这段代码:https://github.com/yourtion/YXWaveView/blob/master/YXWaveView/YXWaveView.swift第179行:letpath=CGMutablePath()我在Xamarin中找不到CGMutablePath? 最佳答案 ObjCCGMutablePathRef结构(或SwiftCGMutablePath类)被Xamarin.iOS包装为CGPath(CoreGraphics命名空间)。varpath=newCGPath

ios - 使用 CGPaths 和 CAShapeLayers 动画绘制字母

我目前正在使用这段代码来为角色绘制动画:varpath=UIBezierPath()varunichars=[UniChar]("J".utf16)varglyphs=[CGGlyph](count:unichars.count,repeatedValue:0)letgotGlyphs=CTFontGetGlyphsForCharacters(font,&unichars,&glyphs,unichars.count)ifgotGlyphs{letcgpath=CTFontCreatePathForGlyph(font,glyphs[0],nil)path=UIBezierPath(C

swift - 快速沿图层的特定路径设置动画

我是iOS的新手,我面临一个关于CAKeyframeAnimation的小问题,我想将View动画化到另一个View层的特定路径。它已经成功地制作了动画。但是,动画的位置不是我所期望的。如您在我的代码中所见。我创建了一个带有圆形边界的UIView(myView)。我想要另一个View(正方形)跟随myView边界的轨道。我已经将myView的中心设置到屏幕中间。然后我尝试获取myView的CGPath并将其设置为CAKeyframeAnimation的路径。但是,正方形在其他地方旋转,而不是在myView的边界上。谁能帮帮我?谢谢overridefuncviewDidAppear(an

ios - 将 UIBezierPath 绘制到 UIImage 到 Base64 图像在 Swift 中不起作用

我创建了一些代码以在UIImage上下文中创建一个UIBezierPath。然后获取图像并创建一个base64字符串。我相信我应该在UIImage的开头和结尾绘制路径。但是,几个小时后,它不起作用。我正在将base64字符串复制到网站以下载图像以查看它是否有效。我在Playground上写这个:importFoundationimportUIKitUIGraphicsBeginImageContextWithOptions(CGSizeMake(200,200),false,0.0)letimage=UIGraphicsGetImageFromCurrentImageContext()

ios - Swift:如何向封闭的 CGPath 添加点?

我想让SKSpriteNodes沿着字母轮廓移动。我有很多封信,但这里有一个例子:我希望Sprite沿着红线移动。我发现这个答案主要涵盖了我的问题:GetpathtotraceoutacharacterinaniOSUIFont答案来自这个良好且有效的示例代码:letfont=UIFont(name:"HelveticaNeue",size:64)!varunichars=[UniChar]("P".utf16)varglyphs=[CGGlyph](count:unichars.count,repeatedValue:0)letgotGlyphs=CTFontGetGlyphsFor

ios - CGPathCreateCopyByTransformingPath 到 Swift 3

我是Swift3的新手,我正在尝试将函数转换为Swift3:-(void)drawRect:(CGRect)rect{if(self.editionMode==Zoom){for(Area*areainself.mArrayPaths){CGAffineTransformzoom=CGAffineTransformMakeScale(self.scale,self.scale);CGPathRefmovedPath=CGPathCreateCopyByTransformingPath([area.pathAreaCGPath],&zoom);area.pathAreaTransform

calayer - 无法释放 CGPathCreateMutable 在 Swift 中创建的路径

我在Swift中有这个简单的代码:overridevarbounds:CGRect{didSet{if(bounds!=oldValue){varpath=CGPathCreateMutable()CGPathAddEllipseInRect(path,nil,bounds)self.path=pathCGPathRelease(path)}}}它应该在图层的bounds更改时绘制一个填充图层的圆。这是从我的旧Objective-C代码移植过来的,它运行良好:-(void)setBounds:(CGRect)bounds{if(CGRectEqualToRect(self.bounds

ios - CGMutablePath.addArc 在 Swift 3 中不起作用?

在Xcode8beta6中,一些添加路径的函数发生了变化,包括那些添加圆弧的函数:funcaddArc(center:CGPoint,radius:CGFloat,startAngle:CGFloat,endAngle:CGFloat,clockwise:Bool,transform:CGAffineTransform=default)除了函数定义之外,Apple网站上没有任何文档。我一直无法从这个函数中获得实际的弧线,并且一直依赖于使用切线的第二个版本。任何人都可以提供工作样本吗?它会被窃听吗?这是一个被更改破坏的函数:publicclassfunccreateHorizontalA

ios - CGPath 复制 lineJoin 和 miterLimit 没有明显影响

我正在使用copy(strokingWithWidth:lineCap:lineJoin:miterLimit:transform‌​:)抵消CGPath.问题是偏移路径引入了各种锯齿线,这些锯齿线似乎是斜接连接的结果。将miterLimit更改为0没有任何效果,使用斜线连接也没有任何区别。在此图像中有原始路径(在应用strokingWithWidth之前)、使用斜接连接的偏移路径和使用斜角连接的偏移路径。为什么使用beveljoin没有任何影响?使用斜接的代码(请注意,使用CGLineJoin.round会产生相同的结果):letpathOffset=path.copy(stroki