Isn't there a truncation property that handles this for a UILabel? On Thu, Mar 11, 2010 at 4:53 PM, Graham Cox <graham....@bigpond.com> wrote:
> > On 12/03/2010, at 5:23 AM, Michael A. Crawford wrote: > > > - (void)timerFireMethod:(NSTimer*)theTimer > > { > > #if 0 > > // Here I was using a periodic timer to animate the scroll. I noticed > that > > // the animation wasn't smooth and then remembered that CA is supposed > to do > > // the animating for me. So, I switched to trying the code below but > that > > // doesn't work either. I'm really just grasping at straws here. > > static CGPoint origin = {0.0f, 0.0f}; > > origin.x += 5.0f; > > [scrollLayer scrollToPoint:origin]; > > #else > > > Hi Michael, > > This is a classic "naive" mistake. You're incrementing the position by a > fixed amount each time the timer fires. Problem is, you can't guarantee that > the timer will fire exactly at the time it should, so your scrolling speed > is at the mercy of how busy things are, so will speed up and slow down. > > Recall that speed is distance/time, so if you want a constant speed, you > have to work out how much distance the thing should have moved in the actual > time interval you got. > > Roughly (typed into mail): > > - (void) timerFireMethod:(NSTimer*) theTimer > { > NSTimeInterval elapsedTime = [NSDate timeIntervalSinceReferenceDate] - > m_startTime; // m_startTime ivar set when the animation began > CGFloat distance = m_speed * elapsedTime; // m_speed is the scrolling > speed in points per second > > [thing setPosition:distance]; > } > > With this approach, the exact timing intervals don't matter - the position > will be correct. If things get busy what will happen is that the jumps > between positions will get a bit larger. > > That said, Core Animation might do the job better, but I just wanted to > point out what the problem was with your original approach. > > --Graham > > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/edolecki%40gmail.com > > This email sent to edole...@gmail.com > -- http://ericd.net Interactive design and development _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com