我想通過在動畫塊中增加UIView的x屬性來在屏幕上移動UIView。我希望元素不斷移動,因此我不能只指定結尾x並延長持續時間。UIView上的平滑幀動畫
此代碼有效,但非常不穩定。在模擬器中看起來不錯,但在設備上起伏不定。
-(void)moveGreyDocumentRight:(UIImageView*)greyFolderView
{
[UIView animateWithDuration:0.05 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
NSInteger newX = greyFolderView.frame.origin.x + 5.0;
greyFolderView.frame = CGRectMake(newX, greyFolderView.frame.origin.y, greyFolderView.frame.size.width, greyFolderView.frame.size.height);
}
} completion:^(BOOL finished) {
[self moveGreyDocumentRight:greyFolderView];
}];
}
請參閱:http://stackoverflow.com/questions/5690141/how-to-do-a-continuous-recycling-uiview-animation – magma
如果您只是在兩個位置之間來回移動,則「 UIViewAnimationOptionAutoreverse'和'UIViewAnimationOptionRepeat'爲標準的'animateWithDuration:delay:options:animations:completion:'block animation將完成這項工作。將它與'UIViewAnimationOptionCurveEaseInOut'結合起來,並且「轉身」過程也將順利進行。如果您想做其他事情(例如,不在兩個地點之間),請告訴我們,我們可以建議其他選擇。 – Rob