[英]UIView animating subviews conditionally using custom property
我有兩個子視圖-滾動視圖,其內容偏移量是使用超級視圖上的一個(CGFloat) 屬性有條件地設置的。 我想對此屬性進行動畫處理,以使動畫流暢。
我的問題是當我使用
[UIView animateWithDuration:...
...
animations:^{
self.property = x;
}
動畫確實發生了,但是兩個滾動視圖是獨立動畫的,並且不遵循在setter中觸發的屬性設置的規則(遞歸調用在一個滾動視圖和另一個滾動視圖上設置偏移量等)。
我嘗試使用自定義CALayer,將其屬性“鏈接到自定義視圖的屬性並使用CoreAnimation對該屬性進行動畫處理”,其中動畫keyPath就是該屬性。 我超越了
+(BOOL)needsDisplayForKey:(NSString *) key
結果,沒有動畫。 有什么方法可以使我的屬性動畫化,從而使結果是一個流暢的動畫?
編輯:我知道這可以通過使用計時器和做一些數學運算(對於動畫的計時器功能,如“緩出”的效果)來完成,但是我猜想可能會有更優雅的解決方案和更可重用的(使用不同的計時器功能)等)。
您的財產是什么類型或類別? 您不太可能使用帶有持續時間的動畫來增加任何基本類型,最好使用for循環並自己增加它。
最后,我使用CADisplayLink連續更新屬性值,並使用緩動函數計算緩和效果的更新差異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.