Будет отправка-removeAllAnimations к слою, также распространяют ко всему, что это - подуровни?

Проблема заключается в классической ковариации / контравариантности дженериков. Вы предполагаете, что поскольку MyDerived1 и MyDerived2 наследуются от MyBase, то a RetVal<MyDerived1> наследуется от RetVal<MyBase>, а это не так.

Самый простой способ исправить это, вероятно, изменить код на:

var list2 = new List<Func<RetVal<MyBase>>>
        {
            () => (MyBase)test.GetRetValT<MyDerived1>,
            () => (MyBase)test.GetRetValT<MyDerived2>
        };

или еще лучше, как указывает JS в комментариях, просто измените RetVal<T> на ковариантный, если это возможно:

public interface IRetVal<out T> { ... }

public class RetVal<T> : IRetVal<T> { ... }
7
задан Thanks 24 July 2009 в 21:48
поделиться

1 ответ

Согласно документации для removeAllAnimations :

Удалите все анимации, прикрепленные к приемнику .

Вам нужно будет выполнить итерацию подслои и также удалите из них анимацию:

for (CALayer* layer in [containerLayer sublayers]) {
  [layer removeAllAnimations];
}
17
ответ дан 6 December 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: