OK, first thing... wow, you need to improve the code style.
Lemme have a go.
Second, stop using that old style animation code. The docs even say not to use it since iOS 4.0.
-(void)scrollTheBreakingNews
{
//You are already checking isTicker here there is
//no reason to check it another SEVEN times inside this block.
if (isTicker)
{
self.ticker.text = textToScroll;
if (!pauseTicker)
{
NSAttributedString *str = [[NSAttributedString alloc] initWithString:textToScroll];
CGSize textSize = [str size];
float duration = (textSize.width + self.tickerView.frame.size.width) / 65.0f;
float startingX=0.0f;
float endX=0.0f;
self.ticker.frame = scrollLabelFrame;
startingX = self.tickerView.frame.size.width;
endX = -textSize.width;
self.ticker.frame = CGRectMake(startingX, 0.0f, textSize.width, 25.0f);
CGRect tickerFrame = self.ticker.frame;
tickerFrame.origin.x = endX;
[UIView animateWithDuration:duration
delay:0.0
options:UIViewAnimationOptionsCurveLinear
animations:^(){
self.ticker.frame = tickerFrame
}
completion:^(BOOL finished){
[self tickerStop];
}];
}
}
}
-(void)tickerStop
{
if (!pauseTicker
&& isTicker) {
[self scrollTheBreakingNews];
}
else {
textToScroll=nil;
}
}
As for the memory issue. I'd suggest finding which part of the code is causing the issue by profiling the app using instruments.
You may find that this will improve the memory usage anyway? Maybe, but not 100% certain on that.