我有 UIImageView 在屏幕上显示每个都有标签值。然后,当我长按时,我将从 UIView 中删除图像。但我想在长按时检查我要删除的图像。这里 ObjectAddedToScreen 是保存显示图像的模型 View 。
mmageView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,150,150)];
[mmageView setUserInteractionEnabled:YES];
// [mmageView setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[productimg_array objectAtIndex:[sender tag]-1]]]]];
[mmageView setImageWithURL:[NSURL URLWithString:[productimg_array objectAtIndex:[sender tag]-1]] placeholderImage:nil options:SDWebImageProgressiveDownload completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
// [loadingViewLbl2 removeFromSuperview];
}];
[mmageView setTag:[sender tag]-1];
object = [[ObjectAddedToScreen alloc] init];
object.productDescription = [descript_array objectAtIndex:[sender tag]-1];
object.view = mmageView;
[self.objectsAddedToScreen addObject:object];
object.object_sku=[sku_array objectAtIndex:[sender tag]-1];
[self.view addSubview:mmageView];
长按删除:
-(void)dblongPress:(UILongPressGestureRecognizer*)sender{
CGPoint tapLocation1 = [sender locationInView: self.view];
for (UIImageView *imageeView1 in self.view.subviews) {
if (CGRectContainsPoint(imageeView1.frame, tapLocation1)) {
// [imageeView1 removeFromSuperview];
[imageeView1 setHidden:YES];
}
}
}
UIImageView_ID 存储:
const char *sqlInsert = [[NSString stringWithFormat:@"insert into product_sku (sku) values ('%@')", object.object_sku] cStringUsingEncoding:NSUTF8StringEncoding];
最佳答案
您的代码可能如下所示:
mmageView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,150,150)];
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(dblongPress:)];
[mmageView addGestureRecognizer:longPressRecognizer];
// the rest is like yours:
[mmageView setUserInteractionEnabled:YES];
// [mmageView setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[productimg_array objectAtIndex:[sender tag]-1]]]]];
[mmageView setImageWithURL:[NSURL URLWithString:[productimg_array objectAtIndex:[sender tag]-1]] placeholderImage:nil options:SDWebImageProgressiveDownload completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
// [loadingViewLbl2 removeFromSuperview];
}];
[mmageView setTag:[sender tag]-1];
object = [[ObjectAddedToScreen alloc] init];
object.productDescription = [descript_array objectAtIndex:[sender tag]-1];
object.view = mmageView;
[self.objectsAddedToScreen addObject:object];
object.object_sku=[sku_array objectAtIndex:[sender tag]-1];
[self.view addSubview:mmageView];
那么手势识别器处理程序是:
- (void)dblongPress:(UILongPressGestureRecognizer *)sender
{
// object SKU is stored in imageView's tag
UIImageView *imageView = (UIImageView *)sender.view;
NSInteger object_sku = sender.view.tag;
// remove the object from database
const char *sqlDelete = [[NSString stringWithFormat:@"delete from product_sku where sku = %d", object_sku] cStringUsingEncoding:NSUTF8StringEncoding];
[database executeUpdate:sqlDelete];
// hide the image view
imageView.hidden = YES;
}
关于ios - 单击时如何检查 ImageView 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303174/