我的控件對於時間軸應用程序有另一個問題。使用UIView動畫時處理,刪除和添加UILabels
有我TimelineView從UIView的herited UILabels一定量。
我實現了一個滾動功能,它的工作原理相當精細。當一個元素到達底部時,它被刪除,另一個UILabel被添加到第一個和其他方式之上。在類委託中有一個標籤數組,其中所有的UI標籤(TimeLabels)被存儲和刪除。小時/天等 - 動態加載,以便內存使用率將會很低)
現在我想在釋放觸摸提示(通過touchesEnded)後以一定的速度正確計算出一個緩解動畫。使用UIView動畫效果相當不錯:
speed/=3;
for(TimeLabel *movingLabel in self.delegate.labels){
NSLog(@"%i",movingLabel.time);
[UIView beginAnimations:@"" context:NULL];
[UIView setAnimationDuration:2.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
CGRect movingFrame = [[movingLabel.layer presentationLayer] frame];
NSLog(@"%f",movingFrame.origin.y);
movingLabel.frame = CGRectMake(7, movingLabel.frame.origin.y+speed, 200, 25);
[UIView commitAnimations];
}
所有標籤的動畫都是正確完成的。
但時,我想擴大我的方法(上面沒有顯示),因此,當一個標籤的位置下降到應用程序框架的高度下,它不會被丟棄(即使使用了表示層,而根據其他人,是一個動畫時獲得當前位置的可能性,但它只顯示記錄時每個標籤的位置...)。
所以我的問題:它甚至有可能通過檢查它的位置,同時其動畫刪除一個UILabel?與這個問題一樣重要:是否可以插入一個新的UILabel,例如添加已刪除的標籤圖層,以便可以使用新圖層繼續啓動的動畫?
如果這些事情是不可能的:是否有另一種方式來實現緩出的動畫一樣,沒有實現一個全新的動畫?
這是一個有點難以解釋它是如何準確地應該看起來像,但我希望我能正確地描述我的問題,還有人誰是能夠幫助我。
問候,
Âsgaroth
你應該嘗試與UIView的動畫屬性一起移動的for循環的開始和提交外面。 – shoughton123 2013-03-08 15:36:07
沒有改變它。感謝tipp無論如何 – 2013-03-08 15:50:45
啊右是值得一試任何一種方式,雖然它更有效地把開始和提交以外的for循環:) – shoughton123 2013-03-08 15:55:26