2

好的,我正在尝试在某些位置处理一副纸牌,但我被困在了某个位置。我只处理比最大值少一个。我正在尝试处理 nsarray 索引中的每个位置。

- (CGPoint)animateDealingToPlayer:(Player *)player withDelay:(NSTimeInterval)delay
{
    self.frame = CGRectMake(-100.0f, -100.0f, CardWidth, CardHeight);
    self.transform = CGAffineTransformMakeRotation(M_PI);

    NSArray *position = [NSArray arrayWithObjects:




                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(10,   50)],


                         nil];


    for(int i=0; i<5; i++) {
        NSValue *value = [position objectAtIndex:i];
        CGPoint point = [value CGPointValue];
        NSLog(@"%@",NSStringFromCGPoint(point));

        self.center = point;


    }

}

我在 10,50 发牌,而不是在以前的位置发牌,例如 0,0。这可能很容易解决,但我似乎不记得如何解决这个问题。请帮我。另外,请注意,我对目标 c 还有些陌生,所以如果你解决了这个问题,你可能不得不把它变笨。

4

1 回答 1

1

问题是您设置卡片位置 5 次而没有做任何动画或让卡片对象有机会在更改其位置之间重新绘制。在运行循环有机会触发之前,iOS 不会真正定位卡片。有许多可能的解决方案,但您可能应该考虑在循环中添加一个动画块,以便移动排队等待显示。

于 2012-09-07T01:08:03.830 回答