UIButton的状态更改直到触摸结束后才发生。
|
抱歉,如果这是一个基本问题,我找不到确切的答案。
我设置了4个按钮:
// Add the normal and selected state for each button
UIImage *buttonImage = [UIImage imageNamed:[NSString stringWithFormat:@\"HotspotNumber2-%i.png\",(hotspotID +1)]];
[hotspotButton setImage:buttonImage forState:UIControlStateNormal];
UIImage *buttonImageSelected = [UIImage imageNamed:[NSString stringWithFormat:@\"HotspotNumber2-%is.png\",(hotspotID +1)]];
[hotspotButton setImage:buttonImageSelected forState:UIControlStateSelected];
[hotspotButton setImage:buttonImageSelected forState:UIControlStateHighlighted];
[hotspotButton addTarget:self action:@selector(hotspotTouch:) forControlEvents:UIControlEventTouchDown];
我在方法中捕获了触摸事件:
// Called when a hotspot is touched
-(void)hotspotTouch:(id)sender{
// Deselect the hotspot currently selected
if (selectedHotspot) [selectedHotspot setSelected:NO];
selectedHotspot = (UIButton *)sender;
[selectedHotspot setSelected:YES];
// Get dictionary of hot spot that is pressed
NSDictionary *hotspot = [hotspots objectAtIndex:[selectedHotspot tag]];
NSString *imageFileName = [hotspot objectForKey:ksHotspotItemKey];
if ([imageFileName length] > 0) currentImageView.image = [UIImage imageNamed:imageFileName];
}
}
我的问题是,直到用户松开手指,按钮的突出显示的图像才会显示出来,这是一个明显的延迟。我看到其他人通过更改背景图像而不是按钮状态或在延迟后执行选择器来解决类似问题,从而使运行循环有机会结束。这两种方法对我来说似乎都是骇客,如果有人可以解释这里发生了什么以及实现该效果的最可靠方法,即用户一旦按下按钮,它就会变为突出显示的状态,那么这两种方法将不胜感激。
提前致谢,
戴夫
没有找到相关结果
已邀请:
1 个回复
锹缄