iPhoneアプリの面白いアニメーション効果に気づきました。ユーザーがアプリケーションをアクティブにするか、[今日] ボタンをタッチすると、現在の日付のセルが点滅/点滅します。
同じ効果を実装する方法は?画像リソースなしで実装することは可能ですか (たとえば、CoreGraphics のみを使用します)?
ありがとう
iPhoneアプリの面白いアニメーション効果に気づきました。ユーザーがアプリケーションをアクティブにするか、[今日] ボタンをタッチすると、現在の日付のセルが点滅/点滅します。
同じ効果を実装する方法は?画像リソースなしで実装することは可能ですか (たとえば、CoreGraphics のみを使用します)?
ありがとう
継続的な点滅効果のためにタイマーを使用する
mytimer = [NSTimer scheduledTimerWithTimeInterval:0.06f
target:self
selector:
@selector(willStartBlinkingAnimation)
userInfo:nil
repeats:YES];
日付ラベルを表示/非表示にする関数を1つ記述します。または、ここでアルファを設定できます。偶数の場合は0.5fに設定し、奇数の場合は1.0fに設定します。
- (void) willStartBlinkingAnimation {
[UIView animateWithDuration:1.f
animations:^{
[currentDateLabel setHidden:![currentDateLabel isHidden]];
}];
}
このプロセスを停止する場合、またはviewDidUnloadメソッドで、プロセスを停止してタイマーを解放します。
[mytimer invalidate];
mytimer = nil;
これがあなたの要件を満たすのに役立つことを願っています。
UIAnimation
ラベルのアルファ プロパティを使用してアニメーション化します。
私はあなたが暦日を通して「輝く」その効果を意味すると思います(今日を押すことによって)。
1)グラデーションを作成します。
オプションA:この効果を実現するには、テーブル行の適切な高さで透明なpngを作成する必要があります。サンプルimgは次のようになります(これは説明用であり、plsは1つ作成します):
オプションB:CAGradientLayerを使用してグラデーションを作成します。それでも、セルの行のグラデーションを効果的にアニメーション化するには、UIImageViewを使用する必要があります。プログラムでグラデーションビジュアルを操作したくない場合は、オプションAをお勧めします。
2)画像を行に配置します。
オプションA:このアニメーションが常に一番上の行で行われることが確実な場合は、テーブルの上にグラデーション画像を追加できます。
オプションB:(前述のアプリケーションが使用する可能性があるもの)グラデーション画像をセル内に配置する必要があります。おそらく最良の選択は、セルの左側にグラデーション画像を配置するカスタムセルを使用することです(前述のアプリが使用しているように、ボックスの左側の日付を参照してください)(X coord = -gradient_img.widthを配置)。
3)グラデーションのアニメーション化。
リンクしたいアクションでアニメーションシーケンスを開始します。例えば。アプリはテーブルビューのscrollViewDidEndScrollingAnimationデリゲートメソッドを使用してアニメーションをトリガーすると思います。
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveLinear
animations:^{
viewShiningImage.frame = CGRectMake(320, 0, viewShiningImage.frame.size.width, viewShiningImage.frame.size.height);
}
completion:^(BOOL finished) {
viewShiningImage.frame = CGRectMake(-viewShiningImage.frame.size.width, 0, viewShiningImage.frame.size.width, viewShiningImage.frame.size.height);
}
];