Iphone UITableViewCell-不同的行为取决于触摸持续时间?
我正在尝试在UITableViewCell子类中设置图像动画。当轻触电池的持续时间约为1/2秒或更长时,它就会工作。对于较短的点击,单元格会被选中,但我的动画不会运行 在我的视图控制器中,我有:Iphone UITableViewCell-不同的行为取决于触摸持续时间?,iphone,animation,uitableview,image-manipulation,Iphone,Animation,Uitableview,Image Manipulation,我正在尝试在UITableViewCell子类中设置图像动画。当轻触电池的持续时间约为1/2秒或更长时,它就会工作。对于较短的点击,单元格会被选中,但我的动画不会运行 在我的视图控制器中,我有: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ImageCell *cell = (ImageCell*)[tableView cellForRowAt
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ImageCell *cell = (ImageCell*)[tableView cellForRowAtIndexPath:indexPath];
cell.imageFlashDuration = 5.0;
cell.imageFlashNumberOfFrames = 25;
NSLog(@"Flash image...");
[cell flashImage];
[self performSelector:@selector(doSomething:) withObject:video afterDelay:5.0];
}
在我的ImageCell中:
-(void)flashImage {
UIImage *image = imageView.image;
if(imageView.isAnimating) {
NSLog(@"Stop animating");
[imageView stopAnimating];
}
NSMutableArray *animationArray = [NSMutableArray arrayWithCapacity:imageFlashNumberOfFrames];
for(int i=0; i<imageFlashNumberOfFrames; i++) {
[animationArray addObject:(i % 2 == 0? black60x60Image : image)];
}
imageView.animationImages = animationArray;
imageView.animationDuration = imageFlashDuration;
NSLog(@"> Start animating");
[imageView startAnimating];
}
-(无效)flashImage{
UIImage*image=imageView.image;
如果(imageView.isAnimating){
NSLog(@“停止设置动画”);
[图像视图停止动画制作];
}
NSMutableArray*animationArray=[NSMutableArray阵列容量:imageFlashNumberOfFrames];
对于(int i=0;我开始设置动画)
2009-07-02 22:02:59.455 MyProg[1797:20b]Flash图像
2009-07-02 22:02:59.460 MyProg[1797:20b]>开始制作动画
2009-07-02 22:03:02.463MyProg[1797:20b]闪光图像
2009-07-02 22:03:02.468 MyProg[1797:20b]>开始制作动画
2009-07-02 22:03:05.009 MyProg[1797:20b]闪光图像
2009-07-02 22:03:05.014 MyProg[1797:20b]>开始制作动画
以上是“短”和“长”触摸的混合。长触摸导致细胞选择和图像动画,短触摸导致细胞选择而没有动画
此外,如果短按之后再短按单元格,动画就会开始。我认为问题在于DidSelectRowatineXpath方法。在这里您调用CellForRowatineXpath方法,该方法可能不会返回单击的单元格!返回的单元格可能是新单元格,在屏幕上不可见,上面有一个动画图像,但是…它不可见
我假设您使用不同的方法处理较长的单击(而不是DidSelectRowatineXpath)
在CellForRowatineXpath方法中,您可能应该在tableview自身请求单元格的位置保留对单元格的引用(或为其分配标记或其他内容)。然后,在使用DidSelectRowatineXpath方法时,查找该单元格的特定实例(通过引用或标记…)
希望这有帮助:)干杯所有触摸都是用相同的方法处理的,但是感谢你的引导。我会尝试一下。嗯,它肯定是同一个单元格-我尝试在两种方法中记录单元格/自指针值&它们是相同的。你找到解决方案了吗?没有。根据设备的不同,行为不同。在旧的(3GS之前)上iPhone动画从未出现过。在6个月大的iPodtouch上,可以看到上述行为。我还没有在3GS上尝试过。