views:

22

answers:

1

I have a UIImageView setup called needleImageView which i need to rotate 360degrees over 10 seconds the point 20.00 20.00 of the ImageView.

Anybody able to show me sample code for this functionality?

Thanks, -Code

+2  A: 

Here is the logic... Try implementing.

On starting timer

//in header file

fireInterval = 10;
mStartingAngle = 0;
mEndingAngle = 360;

//Implementation

-(void) startTimer
{
 mPreviousTime = [NSDate timeIntervalSinceReferenceDate];
}

In the loop

-(void) updateFunction
{
    NSTimeInterval timeNow = [NSDate timeIntervalSinceReferenceDate];

            //NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin
            //Mapping values between mStartAngle and mEndAngle
            mCurrentAngle = (((timeNow - mPreviousTime) * (mEndingAngle - mStartingAngle)) / (previousTime+fireInterval - mPreviousTime)) + mStartingAngle;

            if( mPreviousTime + fireInterval <= timeNow )
            {
                NSLog(@"10 seconds completed");
                mPreviousTime = timeNow;
            }
}
Chandan Shetty SP