Cocoa touch 可调整大小的UILabel,可在屏幕上滚动

Cocoa touch 可调整大小的UILabel,可在屏幕上滚动,cocoa-touch,Cocoa Touch,好的,我正在尝试得到一个带有文本的标签(显然已经完成了),它可以在屏幕上滚动 输入到标签中的文本由UITextField和UIButton完成。这个更新很好 但是我试图让UILabel根据输入的文本量调整大小,这样整个文本就会在屏幕上滚动 这是我目前拥有的滚动标签代码: [lblMessage setText: txtEnter.text]; CABasicAnimation *scrollText; scrollText=[CABasicAnimation animationWithKey

好的,我正在尝试得到一个带有文本的标签(显然已经完成了),它可以在屏幕上滚动

输入到标签中的文本由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"];
问题是,有时在屏幕中间开始滚动,有时在完全消失之前消失。 由于标签的大小相同,它还会剪切文本。。我不知道如何改变这个

提前谢谢


Dom

我相信类似的东西也适用于这种情况

您可以将UILabel嵌入到UIScrollView中,将UIScrollView设置为希望一次在屏幕上显示的标签的最大大小。UIScrollView需要使用其showsHorizontalScrollIndicator和showsVerticalScrollIndicator属性关闭其滚动指示器。更改文本时,您可以执行以下操作:

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

然后是上述链接问题中描述的平移动画代码,要平移的帧位于UILabel的最右侧。这将导致文本在标签上以恒定速率滚动。如果希望标签回滚到开头,可以在动画块的开头使用UIView setAnimationRepeatAutoreverses:和setAnimationRepeatCount:方法

标签调整工作正常,非常感谢

现在,我把标签放到了scrollview中,我看到了它。。但我现在不确定要添加的确切动画。我在你给我的链接上尝试了一些,但它们不起作用

编辑:没关系,我现在已经把一切都做好了

CGPointMake(x,x)是contentOffset所需要的