UIViewでストロークの色の変化をアニメーション化する
-
06-07-2019 - |
質問
「パルス」を送りたいUIViewのdrawRectで描画したパスのストロークの色。しかし、これが可能かどうかわかりませんか?
- (void)highlightView {
if (!isHighlighted) {
[UIView beginAnimations:NULL context:nil];
[UIView setAnimationDuration:0.75];
self.strokeColor = kHighlightColor;
self.strokeWidth = 2.0;
[UIView commitAnimations];
self.isHighlighted = YES;
}
}
ビューでsetNeedsDisplayを設定した場合にのみ、変更を表示できます。しかし、それはアニメーションをバイパスします。別の半透明のビューを適切な色でオーバーレイしてフェードインするなど、これが不可能な場合、いくつかの回避策を考えることができます...ココアで!??おそらく私は間違っています。うまくいけばあなたの一人が私をまっすぐに設定できるようになります。
解決
UIViewを使用してカラープロパティを絶対にアニメーション化できますが、現在扱っているコンテキストでは実際には意味がありません。
drawRect:
では、パスをストロークするときに本質的に色をペイントします。これらのビットは画面にブリットされます。その時点では、色は実際にはペインティングの一部としてのビューのプロパティではありません。
2つのUIViewスタックを互いの上に作成し、その両方の color
プロパティをアニメーション化することにより、この夏に脈動するUIViewを作成しました(" In Call"ステータスバーをエミュレートします)。
所属していません StackOverflow