当我在旋转UIview中触摸图像时,如何检测图像子视图的标签



我想创建一个表盘,我想在单击拨号中的图像时获取图像的标签。我尝试了很多,但没有得到。请参阅下面的代码

- (void) drawWheel {
container = [[UIView alloc] initWithFrame:self.frame];
CGFloat angleSize = 2*M_PI/numberOfSections;
for (int i = 0; i < numberOfSections; i++) {
    UIImageView *im = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segment.png"]];
    im.layer.anchorPoint = CGPointMake(1.0f, 0.5f);
    im.layer.position = CGPointMake(container.bounds.size.width/2.0-container.frame.origin.x, 
                                    container.bounds.size.height/2.0-container.frame.origin.y); 
    im.transform = CGAffineTransformMakeRotation(angleSize*i);
    im.alpha = minAlphavalue;
    im.tag = i;
    if (i == 0) {
        im.alpha = maxAlphavalue;
    }
    cloveImage = [[UIImageView alloc] initWithFrame:CGRectMake(12, 15, 40, 40)];
    cloveImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"icon%i.png", i]];
    cloveImage.tag=i;
   [im addSubview:cloveImage];

}

    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

/

/我想在点击图像视图时获取cloveImage.tag

}

所以我的问题是当我触摸
旋转轮时,我如何检测旋转轮中的图像标签特定的图像?

我建议您在UIImageView上添加按钮,然后将背景图像添加到UI按钮中。就获取标签而言,您应该在其目标方法中获得点击的 buuton 的相应标签

for (UIImageView *img in self.view.subviews)
    {
        if ([img isKindOfClass:[UIImageView class]])
        {
            if (img.tag==index)
            {
                Your code....
            }
        }
    }

您可以使用上面的代码通过使用 for 循环来获取 Perticular 图像的标签。

试试这个:

... ...
cloveImage = [[UIImageView alloc] initWithFrame:CGRectMake(12, 15, 40, 40)];
cloveImage.image = [UIImage imageNamed:[NSString stringWithFormat:@"icon%i.png", i]];
cloveImage.tag=i;
//   **********add begin**********
UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showCloveImageTagOnImageView:)];
[cloveImage addGestureRecognizer:tapGR];
//   **********add end**********
[im addSubview:cloveImage];
... ...

//  copy the selector below and log the cloveImageTag
- (void)showCloveImageTagOnImageView: (UIImageView *)tappedImageView
{
    NSLog(@"tappedImageView.tag: %d", tappedImageView.tag);
}

最新更新