2009-01-10 107 views
10

对,我试图获得一个带有文本的标签(显然已经完成),它在屏幕上滚动。在屏幕上滚动的可调整大小的UILabel

输入到标签的文本由UITextField和UIButton完成。这更新很好。

但我试图让UILabel根据文本输入的大小来调整大小,以便整个屏幕上大量文本滚动。

这是目前的滚动标签的代码我有:

[lblMessage setText: txtEnter.text]; 

CABasicAnimation *scrollText; 

scrollText=[CABasicAnimation animationWithKeyPath:@"position.x"]; 
scrollText.duration = 3.0; 
scrollText.repeatCount = 10000; 
scrollText.autoreverses = NO; 
scrollText.fromValue = [NSNumber numberWithFloat:500]; 
scrollText.toValue = [NSNumber numberWithFloat:-120.0]; 

[[lblMessage layer] addAnimation:scrollText forKey:@"scrollTextKey"]; 

的问题是,有时是开始在屏幕中间滚动,有时消失之前,它已经完全acrosss了。

由于标签只有一种尺寸,所以文字也会缩短..我不知道如何改变这种情况。

在此先感谢。

大教堂

回答

7

我相信类似的东西the solution for this question将为这种情况下工作。

您可以将UILabel嵌入到UIScrollView中,将UIScrollView设置为您希望一次显示在屏幕上的最大标签大小。 UIScrollView需要使用其showsHorizo​​ntalScrollIndicator和showsVerticalScrollIndicator属性关闭其滚动指示器。在文字的变化,你可以做到以下几点:

[lblMessage setText: txtEnter.text]; 
[lblMessage sizeToFit]; 
scrollView.contentSize = lblMessage.frame.size; 

接着在上面链接的问题描述,与框架平移动画代码进行平移,以成为最右侧的的UILabel的。这会导致文本在标签上以恒定速率滚动。如果您希望标签回滚到开头,则可以在动画块的开头使用UIView setAnimationRepeatAutoreverses:和setAnimationRepeatCount:方法。

2

标签大小工作非常感谢!

现在,我已经把标签放入scrollview中,我已经看到了..但我现在不确定要添加到那个确切的动画。我尝试了一些你给我的链接,但他们没有工作。

编辑:没关系,我已经掌握了所有现在的工作。

CGPointMake(x,x)是我需要的contentOffset。