如何将标签添加到标签

时间:2009-07-13 10:04:11

标签: iphone

我的UIView顶部有一个标签。我在计时器的帮助下通过数组显示一些消息。但是现在我希望这些消息以MARQUEE风格显示。我没有任何办法start.Any源代码,使用方法,任何动画样式,任何不同的方法。 提前致谢

2 个答案:

答案 0 :(得分:9)

这是一个想法:

  • 在您的UILabel所在的UIView上将clipsToBounds设置为true。
  • 然后启动一个UIViewAnimations块(在文档中查看如何使用它,它非常简单)
    • 创建一个新标签,其框架设置为一个位于封闭UIView边界之外的位置
    • 将前一个标签的位置设置在封闭的UIView边界之外的左侧某个位置
    • 将下一个标签的位置设置为以前标签的位置。
  • 提交动画

这应该会给你一个标签移动到屏幕上的滑动动画和一个在屏幕上移动的新标签。

您必须使用animationDuration属性以及标签和视图的精确定位和大小调整属性才能使其正确,但它应该非常简单。

答案 1 :(得分:4)

我按照你的想法,我做到了:

*我创建了一个容器视图。

messageView = [[UIView alloc] initWithFrame:CGRectMake(27, 0, 235, 19)];
[messageView setClipsToBounds:YES];//With This you prevent the animation to be drawn outside the bounds.

*然后我创建了一个UILabel,其中包含要显示的文本并添加到我的容器视图中

lblTime = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 235, 19)];
[lblTime setBackgroundColor:[UIColor clearColor]];
[messageView addSubview:lblTime];

*最后我创建了一个这样的函数:

- (void)sendNotification:(NSString*)txt{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:3.5];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:messageView cache:YES];
    [lblTime setText:txt];
    [lblTime setTextAlignment:UITextAlignmentLeft];
    lblTime.frame = CGRectMake(260, 0, 258, 19);
    [UIView commitAnimations];
}