cashapelayer相关内容

使用Pan Gesture将UIView拖到UIBezierPath上

我使用UIBezierPath创建了一个图形。基本上是一段时间内的货币换算图。因此,用户可以拖动手指以查看路径上的值。当用户拖动手指时,如何获得BezierPath的Y值来调整UIView框架。 我使用 apply(info:UnsafeMutableRawPointer?函数:CGPathApplierFunction)但是我不认为它们足以获得良好的结果 我需要的 我使用UIB ..
发布时间:2020-09-28 21:34:50 移动开发

将CAShapeLayer添加为子图层不可见

我第一次体验 CALayers ,并且毫无疑问地做了非常简单,非常错误的事情。 以下代码是从 UIView 扩展的类中。我正在访问视图的CALayer,这很好,并尝试根据用户触摸绘制的线来附加子层。 ( CGPath ) 通过将背景设置为亮橙色,我可以看到我通过了右边 CALayer 放到我的函数中,但是如果我尝试将 CAShapeLayer * line 设置为橙色-我似乎没有可以在 ..
发布时间:2020-09-28 21:33:34 移动开发

为蒙版层添加边框

我正在尝试使用蒙版图层创建自定义形状 UIButton ,并且成功了 扩展UIButton { func mask(withImage image:UIImage,frame:CGRect){ 让maskingLayer = CAShapeLayer() maskingLayer .frame =框架 maskingLayer.contents = image.cgImage ..
发布时间:2020-09-28 21:15:10 移动开发

设置新创建的CAShapeLayer的正确框架

简而言之: Apple未设置框架或 CAShapeLayer 设置c $ c>边界(Apple尚未实现等效于 [UIView sizeThatFits] ) 如果使用路径边界框的大小设置框架,则一切都会出错。无论您如何设置,它都会弄乱路径 所以,以编程方式设置框架的正确方法是什么一个新创建的 CAShapeLayer 和一个新添加的 CGPath ? Apple的文档对此事保持沉默。 ..
发布时间:2020-09-28 21:09:24 其他开发

如何使用CAShapeLayer和UIBezierPath绘制一个平滑的圆?

我试图通过使用CAShapeLayer并在其上设置圆形路径来绘制描边圆。但是,此方法在渲染到屏幕时始终不如使用borderRadius或直接在CGContextRef中绘制路径准确。 以下是这三种方法的结果: 请注意,第三个效果不佳渲染,尤其是在顶部和底部的笔触内部。 我已经将 contentsScale 属性设置为 [UIScreen mainScreen] .scale 。 ..
发布时间:2020-09-28 21:01:30 移动开发

如何在Swift中使用CAShapeLayer为CALayer.SubLayer创建橡皮擦

我一直在到处寻找一个已经被问过很多次的问题的答案.我花了几个小时浏览SO和Google.必须有一个不会费力的答案. 我正在研究矢量绘图应用程序,终于使绘图和撤消功能正常工作了.现在我需要一个橡皮擦:-o 编辑:根据@DonMag的出色记录,我能够接近橡皮擦,但是仍然有些不正确.因此,我将尝试解释我的视图和图层在应用程序中的状态以及为什么这样做: 从底部视图/层到顶部... ..
发布时间:2020-07-30 21:16:47 移动开发

CABasicAnimation中的闪烁可旋转

每当按下按钮时,我都试图将CAShapeLayer从其当前角度旋转一个角度. 我正在使用委托函数animationDidStop在动画结束时设置图层的转换,因为我注意到动画仅更改了表示层的转换,而没有更改图层本身. 但是,由于在代理函数animationDidStop中更新转换之前,图层已返回其先前的转换,所以动画完成后,动画中似乎出现了随机闪烁.如何消除闪烁? @impleme ..

macOS High Sierra和CAShapeLayers,NSImageView,NSTableView冲突

我已更新到macOS High Sierra,现在在我的项目中遇到了意外问题,这些问题在macOS Sierra之前从未出现过. 我具有自定义NSImageView,并且在此NSImageView中拖放图像后,可以使用CAShapeLayers和mouseDown,mouseDragged函数在图像顶部绘制矩形.然后,我可以计算矩形内部图像部分的强度.强度数据在数组中,该数组用于NSTableVi ..
发布时间:2020-07-01 21:05:38 其他开发

从UICollectionView cellForItemAt indexPath设置CAShapeLayer动画的toValue

我包括以下部分: -我的主视图是带有UICollectionView的UIViewController -UICollectionView的单元格 -UIView的子类,用于使用CABasicAnimation构建CAShapeLayer 在我的主视图中,我有一个UICollectionView,它渲染一堆带有标签等的单元格。它还显示了一个进度图。 在我的子类ProgressCi ..
发布时间:2020-06-06 19:11:38 移动开发

CAShapeLayer路径弹簧动画不“超调”

我正在尝试使用CASpringAnimation对CAShapeLayer路径进行动画处理。预期的结果是形状之间表现出“弹性”。 我在圆形和正方形路径之间有一个基本的代码示例,如下所示,但是最终结果是一种春季动画,不会“超出”最终的较大方形路径,这是预期的行为。 我的代码是: let springAnimation = CASpringAnimation(keyPath :“ ..
发布时间:2020-06-06 18:51:51 移动开发

快速将CAShapelayer转换为特定大小

我正在尝试使带有贝塞尔曲线路径的CAShapeLayer扩展为具有视图(当然是动画的)。我知道我可以使用CATransform3DMakeScale(,,)来更改路径的大小,但这不能使我使路径的大小正确(以磅为单位)。 有人知道怎么做吗? 解决方案 您将使用良好的老式数学来做到这一点。 简单解决方案 用不同的措辞来表达您的问题:您拥有一种尺寸的东西(路径/形状层) ),然 ..
发布时间:2020-06-06 18:48:09 移动开发

CAShapeLayer的位置不正确

我有一个名为viewProgress的UIView.它是图像中的白框.我想要一个圆形进度条,它是图像中的绿色圆圈.进度栏应留在白框内,但是您可以看到它已经消失了. 如何使其保留在viewProgress内部? 这里有我的动画功能: func animateView() { let circle = viewProgress // viewProgress is a U ..
发布时间:2020-05-29 02:02:36 移动开发

随时获取路径位置

是否有一种很好的方法来计算给定时间(从0到1)的路径(CGPath或UIBezierPath)的位置? 例如,使用CAShapeLayer可以创建动画的笔触末端. 我想知道笔划结束在任意时间的位置. 提前感谢,阿德里安 解决方案 您绝对可以将方法基于CADisplayLink和跟踪层.但是,如果您不介意自己做一点数学,那么解决方案就不会太复杂.另外,您将不必依赖设置显示链接和额 ..

使用形状遮罩隐藏文字Swift

我尝试在文本上绘制一个三角形,并在与文本相交的地方绘制该形状. 当我尝试使用口罩时,文字只会消失. 这是代码: import UIKit class ViewController: UIViewController { @IBOutlet weak var messageLabel: UILabel! let maskLayer = CAShapeLayer() ..
发布时间:2020-05-06 04:29:43 移动开发

如何将多个蒙版应用于UIView

我有一个问题,关于如何将多个蒙版应用于已经具有蒙版的UIView. 情况: 我有一个带有活动蒙版的视图,该蒙版在其左上角创建了一个孔,这是一个模板UIView,可在项目中的任何地方重复使用.在项目的后面,我希望能够创建第二个孔,但这一次是在右下角,而无需创建全新的UIView. 问题: 当我使用底面膜时,它当然会替换第一个底面膜,从而去除顶孔.有没有办法将两者结合起来?那么,要将现 ..
发布时间:2020-05-06 04:27:30 移动开发