Удалите animation.BeginTime = 0.01;
в методе PulseCharsLeft()
, и тогда он будет работать.
Это должно выглядеть так:
private void PulseCharsLeft()
{
var animation = CABasicAnimation.FromKeyPath("fontSize");
animation.SetFrom(NSNumber.FromNInt(12));
animation.SetTo(NSNumber.FromNInt(16));
animation.Duration = 1.0;
//animation.BeginTime = 10;
animation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear);
animation.AutoReverses = true;
charsLeftTextLayer.AddAnimation(animation, "basic");
}
BeginTime
указывает относительное время начала от родительской анимации (по умолчанию несколько анимаций в группе запускаются одновременно).
Из документа :
Указывает время начала получателя относительно его родителя.
объект, если применимо.
Вы можете посмотреть ответ здесь , чтобы узнать больше о BeginTime
.
Кстати, в вопросе, ваш charsLeftTextLayer.Frame = new CGRect(582, 153, 99, 21);
, x
(582) слишком велик для тестирования?
Я изменил его на небольшое значение и добавил textView для проверки.
charsLeftTextLayer.Frame = new CGRect(82, 153, 99, 21);
Также я изменил MAX_COMMENTS_CHARS
на 10, и его проще тестировать.