我正在尝试为添加到数组中的UIImages添加动画。我想将动画添加到数组索引0并使其动画化。我想更改imageCount并每隔3秒为其设置动画。我还添加了NSTimer,这将帮助我更改图像,但它没有正确更改图像。我喜欢一个菜单列表,其中第一个链接应该是动画的。有没有人遇到过这样的问题,可以帮助我。
- (void)viewDidLoad {
[super viewDidLoad];
[NSTimer scheduledTimerWithTimeInterval:3
target:self
selector:@selector(animateFunction)
userInfo:nil
repeats:YES];
[self setListArray:[NSMutableArray arrayWithObjects:@"",@"List",@"To-Do",nil]];
}
-(void)animateFunction
{
NSLog(@"Timer heartbeat %i",imageCount);
if (imageCount == 2) {
// set the image count back to initial value;
imageCount = 1;
} else {
imageCount++;
}
[self setCellIconNames:[NSArray arrayWithObjects:[NSString stringWithFormat:@"image%i.png", imageCount],@"final.png",@"blue.png",nil]];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSUInteger row = [indexPath row];
NSString *cellIconName = [[self cellIconNames] objectAtIndex:[indexPath row]];
UIImage *cellIcon = [UIImage imageNamed:cellIconName];
[[cell imageView] setImage:cellIcon];
cell.textLabel.text = [listArray objectAtIndex:row];
cell.backgroundColor = [UIColor clearColor];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
答案 0 :(得分:0)
我认为问题是每次调用与计时器关联的方法时imageCount
被设置为1。尝试将标头文件中的imageCount
声明为int imageCount;
,从imageCount = 1;
方法中删除animateFunction
并将其放在viewDidLoad
或类似的方法中进行初始化它。然后,当您迭代imageCount
时(如果您愿意,可以用imageCount = imageCount + 1
代替imageCount++
),它会正确地将1添加到变量中,而不是每次返回2(这就是目前的方法)。如果您需要循环图像,则需要设置一个检查,以重置imageCount
,如下所示:
if (imageCount == yourMaxNumber) {
// set the image count back to initial value;
imageCount = 1;
} else {
imageCount++;
}
希望这对您有所帮助