看代码
- (void)panGesAction:(UIPanGestureRecognizer *)pan{
CGPoint point = [pan translationInView:self];
CGPoint newCenter = CGPointMake(pan.view.center.x + point.x, pan.view.center.y + point.y);
//限制移动范围为父视图
newCenter.y = MAX(pan.view.frame.size.height/2, newCenter.y);
newCenter.y = MIN(self.frame.size.height - pan.view.frame.size.height/2, newCenter.y);
newCenter.x = MAX(pan.view.frame.size.width/2, newCenter.x);
newCenter.x = MIN(self.frame.size.width - pan.view.frame.size.width/2, newCenter.x);
pan.view.center = newCenter;
[pan setTranslation:CGPointMake(0, 0) inView:self];
if ([pan.view isEqual:self.leftImageView] || [pan.view isEqual:self.rightImageView]) {
//发出正在移动的通知
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:pointMoveNoti object:nil userInfo:@{pointMovePointXKey:@(newCenter.x), pointMovePointYKey:@(newCenter.y)}]];
//发出停止移动的通知
if (pan.state == UIGestureRecognizerStateEnded) {
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:pointMoveEndKey object:nil userInfo:nil]];
}
//发出开始移动的通知
if (pan.state == UIGestureRecognizerStateBegan) {
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:pointMoveBeginKey object:nil userInfo:@{pointMovePointXKey:@(newCenter.x), pointMovePointYKey:@(newCenter.y)}]];
}
}
}