在iOS中点击1 uiimageview时如何使背景变暗

在iOS中点击1 uiimageview时如何使背景变暗,ios,objective-c,uiimageview,Ios,Objective C,Uiimageview,我有1个选项卡视图,在单元格中添加4个图像视图。当用户点击任何imageview时,背景将变暗,并且刚刚选择的imageview将显示在变暗视图的顶部 我尝试了以下代码: self.dimView = [[UIView alloc]initWithFrame:self.view.frame]; self.dimView.backgroundColor = [UIColor blackColor]; self.dimView.alpha = 0.7; self.dimView.hidden =

我有1个选项卡视图,在单元格中添加4个图像视图。当用户点击任何imageview时,背景将变暗,并且刚刚选择的imageview将显示在变暗视图的顶部

我尝试了以下代码:

self.dimView = [[UIView alloc]initWithFrame:self.view.frame];

self.dimView.backgroundColor = [UIColor blackColor];
self.dimView.alpha = 0.7;
self.dimView.hidden = YES;
[self.sellItemtbl addSubview:self.dimView];
//[self.view bringSubviewToFront:dimView];

//add tap gesture to dimview
UITapGestureRecognizer *singleFingerTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
                                        action:@selector(handleSingleTap:)];
[self.dimView addGestureRecognizer:singleFingerTap];

但它只创建一个昏暗的视图,并且刚刚选择的图像不能显示在该视图的顶部。我该怎么做?请给我一些建议。提前感谢。

背景不清楚您指的是仅表格视图单元格还是整个视图。我假设它是唯一的表视图单元格,并将表视图单元格的代码封装在这里。您可以通过使用
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(nsindepath*)indepath
方法将其扩展到整个视图

- (void)awakeFromNib
{
    [self setSelectionStyle:UITableViewCellEditingStyleNone];
    [self.contentView setBackgroundColor:[UIColor colorWithRed:1.f green:0.f blue:0.f alpha:1.f]];

    [self.imgView1 setUserInteractionEnabled:YES];
    [self.imgView2 setUserInteractionEnabled:YES];
    [self.imgView3 setUserInteractionEnabled:YES];
    [self.imgView4 setUserInteractionEnabled:YES];

    [self.imgView1 setTag:1];
    [self.imgView2 setTag:2];
    [self.imgView3 setTag:3];
    [self.imgView4 setTag:4];

    [self.imgView1 addGestureRecognizer:[self getTapGestureRecognizer]];
    [self.imgView2 addGestureRecognizer:[self getTapGestureRecognizer]];
    [self.imgView3 addGestureRecognizer:[self getTapGestureRecognizer]];
    [self.imgView4 addGestureRecognizer:[self getTapGestureRecognizer]];
}

- (UITapGestureRecognizer *)getTapGestureRecognizer
{
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapMade:)];
    tapGesture.numberOfTapsRequired = 1;
    tapGesture.numberOfTouchesRequired = 1;
    tapGesture.cancelsTouchesInView = NO;
    return tapGesture;
}

- (void)tapMade:(UITapGestureRecognizer *)recognizer
{
    UIImageView *imgView = (UIImageView *)recognizer.view;
    NSInteger tag = imgView.tag;

    [self.contentView setBackgroundColor:[UIColor colorWithRed:1.f green:0.f blue:0.f alpha:0.7f]];
    [self.imgView1 setAlpha:(tag == 1)? 1.f: 0.7f];
    [self.imgView2 setAlpha:(tag == 2)? 1.f: 0.7f];
    [self.imgView3 setAlpha:(tag == 3)? 1.f: 0.7f];
    [self.imgView4 setAlpha:(tag == 4)? 1.f: 0.7f];
}

如果您有任何疑问,请告诉我。

什么类型是
self.sellItemtbl
?了解您正在添加的
self.dimView
将有所帮助。