core-animation

    0热度

    2回答

    我遵循核心动画教程,解说员创建了一个CABasicAnimation对象,并开始使用对象的所有这些不同属性,如duration,repeatCount和autoReverse。我遇到的问题是,当我研究Apple的CABasicAnimation documentation时,它没有显示这些属性。我认为叙述者发现这些属性使用它们非常酷,我想知道如何提高我的研究技能,或者我不在Apple的文档中寻找叙

    4热度

    1回答

    我已经在组件上添加了渐变,它处于一个角度。该梯度不垂直于梯度矢量。设备iPhone 6s,为了方便,已经设置了大小不变。可能是什么问题呢? class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let topPoint = CGPoint(x:

    2热度

    1回答

    我正在寻找在macOS上绘制屏幕外CALayer内容(无需alpha)的最快方法。请注意,这些示例不是线程化的,但重点是(以及为什么我不只是使用CALayer.setNeedsDisplay),因为我正在后台线程上执行此绘图。 我的原代码,这样做: let bounds = layer.bounds.size let contents = NSImage(size: size) content

    2热度

    1回答

    我制作了一个CAAnimation(CAAnimationGroup准确地说),从0 - > 1然后回到0 - > 1进行缩放和褪色(不透明度)。动画也会一直重复 ,因为我已经设置了animationGroup.repeatCount = .greatestFiniteMagnitude。此动画适用于UILabel,并使标签一遍又一遍地显示并消失,并带有不错的动画。 我现在想要改变每次动画重复之间

    0热度

    2回答

    的绘图部分,我想办法以下情形: 如果我画使用CGBezierPath和CAShapeLayer如下所示的矩形: CAShapeLayer *layerX = [CAShapeLayer layer]; layerX.path = path.CGPath; layerX.lineWidth = 3; layerX.strokeColor = [[UIColor whi

    0热度

    1回答

    在Swift中,我有两个半透明圆圈,它们都是CAShapeLayer。由于他们是半透明的,它们之间没有任何重叠,像这样变得可见: 相反,我希望他们能在视觉上“合并”在一起。我试过的解决方案是使用圆圈2作为圆圈1的掩码,因此切掉重叠。 这个解决方案通常工作,但我得到的圈2的外细线: 我的问题:我怎样才能在右边圆圈摆脱薄,外线?为什么它在那里? 的代码如下(Xcode playground can b

    0热度

    1回答

    我正在尝试使渐变具有动画效果,以便两种颜色的位置从左向右移动。问题是,一旦动画完成,渐变位置就会回到原来的位置。 这里是我的游乐场代码: import UIKit import PlaygroundSupport class MyViewController : UIViewController { let gradientLayer: CAGradientLayer = {

    0热度

    1回答

    我有一个非常基本的问题:如何做的时候,你想画的形状(我不是在谈论textfields,switches或其他使用UIView和CAShapeLayer之间你选择控制,只是绘图)? 我的理解是,UIView(作为UIKit的一部分)使用正常的CALayer下绘制其内容。如果这是正确的,那么CAShapeLayer(或一般CALayer)将是完全相同的东西,只有没有额外UIKit给你。 那么,什么时候

    0热度

    1回答

    我注意到,在macOS的Finder中,当边栏合拢/展开时,图标和文本被压缩或拉伸(请参见下面的截图)。我想这是一个优化,防止在动画过程中重新绘制图层。 我试图编写一个模仿该行为的自定义NSTableCellView子类。但我不知道从哪里开始,具体如下: 如何在动画启动时得到通知,以便我可以设置图层的内容。 如何在动画完成时重新绘制视图或图层,以免它再次使用缓存的内容。 我从下面的脚手架代码开始。

    0热度

    1回答

    我有以下行创建弧 func drawSomething(_ context: CGContext, rect: CGRect) { context.saveGState() let path = UIBezierPath() let pathStartRagAngle = (0).degreesToRadians let pathEndRagAngle =