【问题标题】:Is that Possible to move a uilabel in navigationbar from left to right?是否可以将导航栏中的 uilabel 从左向右移动?
【发布时间】:2013-06-19 11:31:46
【问题描述】:

在我的UIViewController 中,我使用UILabel 作为xib 中的导航标题。但是文字太长了,所以我需要一个动画。比如从左到右移动UILabel

这可能吗? 我看到了这段代码,但这是为了将一点移到另一点。 这里UILabel名字是“标签”

  float newX = 90.0f;
float newY = 101.0f;

[UIView transitionWithView:label
                  duration:0.5f
                   options:UIViewAnimationCurveEaseInOut
                animations:^(void) {
                    label.center = CGPointMake(newX, newY);
                }
                completion:^(BOOL finished) {
                    // Do nothing
                }];

【问题讨论】:

  • 您是否尝试过将该 UILabel 添加到 UISCrollView 中?也许你可以用动画来抵消 scrollBy?
  • 我没听懂你说什么
  • 不要用 UIlabel 初始化你的 UIBarButtonItem,而是用一个 UIScrollView 来初始化它,它有一个你的 UILabel 作为一个子视图。

标签: ios objective-c animation uilabel uinavigationbar


【解决方案1】:

我了解您希望 marquee 效果将标签中的每个字符向右移动。

这是一种方法。

首先在viewDidAppear:方法中设置NSTimer,以指定的时间间隔调用animateLabel方法,如下所示:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.4 target:self selector:@selector(animateLabel:) userInfo:nil repeats:YES];
}

然后定义一个获取标签文本并将其重置为新文本的方法。此方法每 0.4 秒调用一次,并为您提供所需的选取框效果。

- (void)animateLabel:(NSTimer *)timer
{
    int labelSize = label.text.length; 
    label.text = [NSString stringWithFormat:@"%c%@", [label.text characterAtIndex:labelSize - 1], [label.text substringWithRange:NSMakeRange(0, labelSize - 1)]];
}

附: : 我还没有在导航标题上看到过这样的字幕效果。我见过一些流行的应用程序,如果标签足够长以至于不适合导航标题,那么它们会将其保留为最后的...。我不是说你也应该这样做,只是想告诉你。

编辑:从右到左:

- (void)animateLabel:(NSTimer *)timer
{
    int labelSize = label.text.length; 
    label.text = [NSString stringWithFormat:@"%@%c", [label.text substringWithRange:NSMakeRange(1, labelSize - 1)], [label.text characterAtIndex:0]];
}

【讨论】:

  • label.length;没有这样的财产
  • 我会将文本保存到 NSString 并找到长度,然后我会将文本复制到 uilabel..thanks akash
  • @user2439088 无需复制到单独的 NSString 中。查看我编辑的代码。
  • 100 分给那个答案伴侣!谢谢
【解决方案2】:

如果您的意思是将 UILabel 移动到一个点并再次返回,为什么不使用完成来调用另一个动画?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2018-07-10
    相关资源
    最近更新 更多