向 Scrollview 内的 UIImageView 添加长按手势
Posted
技术标签:
【中文标题】向 Scrollview 内的 UIImageView 添加长按手势【英文标题】:Adding long press gesture to UIImageView inside Scrollview 【发布时间】:2014-09-08 02:49:39 【问题描述】:我已经研究了几个小时,但似乎没有任何效果。我有一个 UIScrollView 作为 IBOutlet 并通过代码添加两个 UIImageViews。一张是背景图片,第二张是照片。这里一切正常。我正在尝试向第二张照片添加长按手势,但它似乎不起作用。这是我的代码。我希望有人能看到我的问题。
// loop thru images array
UIImage *bgFrame = [UIImage imageNamed:@"photo-frame.png"];
UIImageView *bgImageView = [[UIImageView alloc] initWithImage:bgFrame];
bgImageView.frame = CGRectMake(posX, posY, 100, 100);
[self.scroll addSubview:bgImageView];
NSString *photoName = [self.photoArray objectAtIndex:i];
UIImage *photo = [self.utils getClientPhoto:photoName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:photo];
imageView.userInteractionEnabled = YES;
imageView.frame = CGRectMake(6, 9, 89, 71);
imageView.tag = i;
[bgImageView addSubview:imageView];
// add long press for deletion
UILongPressGestureRecognizer *lPressed = [[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(imageLPressed:)];
lPressed.delegate = self;
lPressed.minimumPressDuration = 0.4;
[imageView addGestureRecognizer:lPressed];
【问题讨论】:
【参考方案1】:imageView.userInteractionEnabled = YES;
不需要,它总是可以正常工作。将委托设置为 gestureRecognizer 也是可选的。首先尝试将 imageView 添加到 self.scroll 子视图而不是 bgImageView。之后检查您的 scrollView 内容大小,如果您的图像超出 dat 大小,则它可以可见但不可用。尝试用 uibutton 替换 imageview 并检查它的 uitouchupinside 事件。
【讨论】:
【参考方案2】:在bgImageView
和imageView
上启用UserInteraction
。
【讨论】:
以上是关于向 Scrollview 内的 UIImageView 添加长按手势的主要内容,如果未能解决你的问题,请参考以下文章