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 =