0

I want to create a dial and i want to get the tag of images when clicked the images in the dial.i tried a lot , but i didn't get it.see the code below

- (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

{

//i want to get cloveImage.tag when i clicked the imageview

}

So my question is how can I detect tag of image in the rotatory wheels when i touched the
particular image?

4

3 回答 3

0

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

于 2012-09-24T09:25:35.390 回答
0

尝试这个:

... ...
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);
}
于 2012-09-24T10:01:47.287 回答
0
for (UIImageView *img in self.view.subviews)
    {
        if ([img isKindOfClass:[UIImageView class]])
        {
            if (img.tag==index)
            {
                Your code....
            }
        }

    }

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

于 2012-09-24T09:43:38.860 回答