私たちのアプリでは、基本的にUITabBarItem
の中にあるカスタムアラート通知があります。私はUITabBarItem
の視野を得て、適切な位置にCAShapeLayer
を作成して追加しました。残念ながら、私が何を試しても、形をアニメーション化することはできません。私は、パスやfillColorなどのさまざまなプロパティをアニメーション化してみましたが、成功しませんでした。私はそれがUITabBarItem
で働いて得ることができないしてみてください何が関係なく、UITabBarItem内のiOSカスタムアニメーション
var lyrShape = CAShapeLayer()
lyrShape.fillColor = UIColor.red.cgColor
lyrShape.path = UIBezierPath(overIn: CGRect(x: 5, y: 5, width: 10, height: 10)).cgPath
vwTabBar.layer.addSublayer(lyrShape)
var aniShape = CABasicAnimation(keyPath: "fillColor")
aniShape.duration = 5
aniShape.toValue = UIColor.blue.cgColor
aniShape.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn)
aniShape.fillMode = kCAFillModeBoth
aniShape.autoreverses = true
aniShape.repeatCount = 20
lyrShape.add(aniShape, forKey: aniShape.keyPath)
私は定期的な意見でこのコードを試してみた、それは素晴らしい作品:
は、ここでのコードの抜粋ません。
更新:このバグを再現するための正確な手順を見つけました。プレーンな古いView Controllerでボタンを使ってアプリケーションを起動します。そのボタンをクリックして、タブコントローラービューを表示します。 TabBarItemで描画する図形は、この時点ではアニメーション化されません。ただし、TabBarControllerが最初のビューとして開始された場合、アニメーションはうまくいきます。
誰にもアイデアはありますか?
ありがとう!
こんにちは!早速のご返事ありがとうございます。しかし、これを達成するためにUITabBarControllerから継承する必要がある理由はありません。それは何が変わるのですか?また、私はイメージをアニメートするつもりはない。むしろ私が追加したUITabBarItemの中にCAShapeLayerをアニメーション化しようとしています。 UITabBarControllerを継承する理由について説明できますか?そして、なぜあなたはそれをしないのですか? ありがとう! –
私は、タブバーのサブビューを反復できないし、直接imageviewプロパティにアクセスすることもできないと思います。サブクラス化により、カスタマイズしたコードと動作を柔軟に追加できます。 –
実際には、いくつかの方法でUITabBarItemのビューを見ることができます。彼はUIImageを取得するために彼のポストで本当にハックな方法を示しています。私は反復し、特定のタイプのビューをテストしますが、あなたは確かにいずれかの方法でビューに取得することができます...私に戻ってくれて再度ありがとう。私は入力を感謝します! –