Передача объектов в метод типа CGFloat - PullRequest
0 голосов
/ 07 октября 2011

Я использую неправильные типы?CGFloat?плавать?int, все дают мне одну и ту же проблему.

Мне нужна помощь с моим методом wiggleImage.Я пытаюсь настроить метод, в который я могу передать объекты, и у меня есть один метод, который я могу вызывать, анимировать множество различных представлений и повторно использовать код.Но когда я жестко кодирую значения anchorPointX и anchorPointY внутри метода, он работает нормально.Когда я использую переданные значения, он выполняет какое-то странное преобразование и, как вы можете видеть из вывода журнала, он меняет значения на что-то отличное от того, что я передаю.

 - (void)viewDidLoad {

 [self wiggleImage:candleFlickerView 
               duration:.45  
               curve:UIViewAnimationCurveEaseInOut 
               x:10.0 
               y:10.0 
               rotation:1 
               anchorPointX:0.2 
               anchorPointY:0.2];   
       NSLog(@"VDL  AnimationViewController....\n "); 
     }



- (IBAction)wiggleImage:(UIImageView *)image duration:(NSTimeInterval)duration
              curve:(int)curve x:(CGFloat)x y:(CGFloat)y rotation:(CGFloat)rotation 
            anchorPointX:(CGFloat)anchorPointX anchorPointY:(CGFloat)anchorPointY
{
// UN HIDE THE VIEW
image.hidden = FALSE;

// Setup the animation
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationRepeatCount:FLT_MAX];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationRepeatAutoreverses:YES];
//image.layer.anchorPoint= CGPointMake(0.5,0);
image.layer.anchorPoint= CGPointMake(anchorPointX, anchorPointY);


// The transform matrix 
 CGAffineTransform transform = CGAffineTransformMakeRotation(-0.45);
image.transform = transform;
// Commit the changes
[UIView commitAnimations];
NSLog(@"VDL showing wiggleImage Animation with Values of....\n ");  
NSLog(@"\nX=[%f]", anchorPointX );
NSLog(@"\nY=[%f]", anchorPointY );
NSLog(@"\nRotation=[%f]", rotation );

}


console output.
2011-10-07 10:21:54.580 Skippy[16932:c803] VDL showing wiggleImage Animation Values....

2011-10-07 10:21:54.581 Skippy[16932:c803] 
X=[2.562500]
2011-10-07 10:21:54.582 Skippy[16932:c803] 
Y=[0.000000]
2011-10-07 10:21:54.582 Skippy[16932:c803] 
Rotation=[0.000000]
2011-10-07 10:21:54.583 Skippy[16932:c803] VDL  AnimationViewController....

1 Ответ

0 голосов
/ 07 октября 2011

Объявлено ли wiggleImage до того, как оно будет использовано в viewDidLoad? Убедитесь, что он присутствует в заголовке вашего класса и что заголовок включен в файл реализации.

...