Я бы хотел включить UIPanGestureRecognizer
на customView
, когда customView
сделал longPress
.
(я хочу, когда вы longPress
customView
, то customView
перейдет в «режим перемещения», и вы можете перемещать customView
путем перетаскивания.)Включить UIPanGestureRecognizer, когда longPress
Но в этом коде, только longPressAction:
называется. panAction:
не звонил.
Как исправить это, чтобы включить PanAction:
?
- (void)viewDidLoad
{
[self.view addSubview:customView];
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];
[customView addGestureRecognizer:longPressRecognizer];
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
[customView addGestureRecognizer:panRecognizer];
}
- (void)longPressAction:(UILongPressGestureRecognizer *)recognizer
{
if ([recognizer state] == UIGestureRecognizerStateBegan) {
CustomView *customView = (CustomView *)recognizer.view;
customView.panRecongnizerEnabled = YES; //panRecongnizerEnabled is CustomView's property
}
if ([recognizer state] == UIGestureRecognizerStateEnded) {
CustomView *customView = (CustomView *)recognizer.view;
customView.panRecongnizerEnabled = NO;
}
}
- (void)panAction:(UIPanGestureRecognizer *)recognizer
{
CustomView *customView = (CustomView *)recognizer.view;
if (customCell.panRecongnizerEnabled == NO) return;
NSLog(@"running panAction");
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
Честно говоря, это звучит так, будто вы должны слушать прикосновения. Затронутые/прикосновенияМонированные/прикосновения. На самом UIView после longPress вы можете просто установить заблокированные границы и соответствующим образом переместить вид. – TheCodingArt