我想创建一个表盘,我想在单击拨号中的图像时获取图像的标签。我尝试了很多,但没有得到。请参阅下面的代码
- (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);
}