我的UITableView
中有ViewController
。有一个自定义UITableViewCell
。在该自定义cell
中,我有一个UIImageView
和多个UILabel
。我想在UISwipeGestureRecognizer
上添加UIImageView
。我已经以编程方式进行了手势,但它无法正常工作。
以下是我所做的代码:
////////// THIS CODE I TOOK IN CELL FOR ROW METHOD:
swipe=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(Swipe_Handling:)];
swipe.direction=UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight;
[cells.propimage addGestureRecognizer:swipe];
////////////
-(void)Swipe_Handling:(UISwipeGestureRecognizer *)recognizer
{
if (recognizer.direction==UISwipeGestureRecognizerDirectionRight)
{
NSLog(@"Right");
}
else if (recognizer.direction==UISwipeGestureRecognizerDirectionLeft)
{
NSLog(@"Left");
}
}
调用滑动处理操作,但它不会进入if-else条件和cells.propimage.userInteractionEnabled=YES;
。
当我打印NSLog(@"%lu",(unsigned long)recognizer.direction);
时
它返回给我:3
typedef NS_OPTIONS(NSUInteger, UISwipeGestureRecognizerDirection) {
UISwipeGestureRecognizerDirectionRight = 1 << 0,
UISwipeGestureRecognizerDirectionLeft = 1 << 1,
UISwipeGestureRecognizerDirectionUp = 1 << 2,
UISwipeGestureRecognizerDirectionDown = 1 << 3
};
答案 0 :(得分:1)
请尝试此代码2个方向
UISwipeGestureRecognizer* gestureR;
gestureR = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom)] autorelease];
gestureR.direction = UISwipeGestureRecognizerDirectionLeft;
[imgview addGestureRecognizer:gestureR];
gestureR = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom)] autorelease];
gestureR.direction = UISwipeGestureRecognizerDirectionRight; // default
[imgview addGestureRecognizer:gestureR];
答案 1 :(得分:0)
请在此
中添加手势委托方法-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return YES;
}
这一行与你的手势一起工作
[yourgest setCancelsTouchesInView:NO];
它会起作用..
答案 2 :(得分:0)
我添加&#34;添加手势代码&#34;在单元格的awakeFromNib()中,它可以正常工作
override func awakeFromNib() {
super.awakeFromNib()
// add gesture here
}