簡體   English   中英

知道為什么下面的UIView動畫只能在一個方向上起作用嗎?

[英]Any idea why the following UIView animation only works in one direction?

我在cellForRowAtIndex Delegate方法的末尾有以下動畫,該方法只是根據是否設置了pseudoEditing標志來左右移動所有單元格:

[UIView beginAnimations:@"cell shift" context:nil];
[UIView setAnimationDuration:kEventActionViewAnimationDuration];

cell.eventName.frame = (self.pseudoEditing) ? kPseudoEditingFirstIndentedRect : kFirstLabelRect;
cell.eventLocationName.frame = (self.pseudoEditing) ? kPseudoEditingSecondIndentedRect : kSecondaryLabelRect;
cell.eventStartDate.frame = (self.pseudoEditing) ? kPseudoEditingThirdIndentedRect : kThirdLabelRect;
cell.eventStartEndTime.frame = (self.pseudoEditing) ? kPseudoEditingFourthIndentedRect : kFourthLabelRect;
cell.imageView.frame = (self.pseudoEditing) ? kImageViewIndentedRect : kImageViewRect;
cell.rsvpImageView.hidden = !self.pseudoEditing;

[UIView commitAnimations];


return cell;

這是常量的聲明位置:

#define kImageViewRect                          CGRectMake(10, 9.0, 60.0, 60.0)
#define kFirstLabelRect                         CGRectMake(80, 10.0, 220.0, 20.0)
#define kSecondaryLabelRect                     CGRectMake(80, 30.0, 220.0, 20.0)
#define kThirdLabelRect                         CGRectMake(80, 50.0, 220.0, 20.0)
#define kFourthLabelRect                        CGRectMake(180.0, 50.0, 110.0, 20.0)

#define kPseudoEditingFirstIndentedRect         CGRectMake(115.0, 10.0, 195.0, 20.0)
#define kPseudoEditingSecondIndentedRect        CGRectMake(115.0, 30.0, 195.0, 20.0)
#define kPseudoEditingThirdIndentedRect         CGRectMake(115.0, 50.0, 195.0, 20.0)
#define kPseudoEditingFourthIndentedRect        CGRectMake(200.0, 50.0, 110.0, 20.0)

問題在於,當從右移到左而不是從正常狀態從左移到右時,它僅在一個方向上起作用。

有任何想法嗎?

原來我的FetchedResultsController是在動畫開始后立即重新加載表,從而取消了該表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM