的完成塊我試圖瞭解UIView animateWithDuration:completion
。我想要做的是將UIView拖入另一個UIView。如果它們相交,則將拖動的UIView的alpha設置爲0,然後將拖動的UIView重置爲其原始位置。這個想法是將一個物品拖放到一個桶中。要開始,我只是將alpha設置爲0,然後重置它。這是我對拖動視圖的移動手勢識別代碼:瞭解[UIView animateWithDuration:完成:]
else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
// Update the description view
if (CGRectIntersectsRect(panViewPiece.frame, _descriptionView.frame)) {
[UIView animateWithDuration:0.25 animations:^{
self.dragDescriptionView.alpha = 0.0;
}completion:^(BOOL finished) {
if (finished) {
panViewPiece.center = _dragDescriptionViewOriginalCenter;
self.dragDescriptionView.alpha = 1.0;
}
}];
[self updateDescriptionView];
}
}
所以我想完成的工作塊的方式是,當第一animateWithDuration完成,完成塊將被調用。因此,我試圖在第一部分中將alpha設置爲0,然後一旦完成,將panViewPiece放回原始位置,並將其alpha設置爲1.發生什麼事是在rects相交之後,alpha變爲0然後回到1,因爲它會回到原來的中心位置。我不希望視圖可見,而它又回到原來的位置。我是否正確理解完成塊?或者這不是它的工作方式?謝謝!
panViewPiece和self.dragDescriptionView有什麼區別,updateDescriptionView有什麼作用? – jrturton
@jrturton抱歉代碼寫得不好。 panViewPiece和self.dragDescriptionView指向同一個對象。 updateDescriptionView現在不做任何事情。這是我將在稍後對我的觀點進行其他更新的地方。 – Crystal