如何为 UILabel 字体更改设置动画?

Posted

技术标签:

【中文标题】如何为 UILabel 字体更改设置动画?【英文标题】:How to animate UILabel font change? 【发布时间】:2012-11-01 15:03:40 【问题描述】:

我正在创建一个字体大小为 0 的标签,我想放大它,同时让它消失。 一件重要的事情是我想调整标签大小和位置到中心和视图(它可以是 iphone 或 ipad)。 在我的代码中,我必须从大字体开始,有其他建议吗?

我的代码:

UILabel* swipeLabel = [[UILabel alloc] initWithFrame:self.view.frame];
[swipeLabel setText:NSLocalizedString(@"Swipe to change", @"Swipe label text")];
[swipeLabel setTextColor:[UIColor whiteColor]];
[swipeLabel setTextAlignment:UITextAlignmentCenter];
[swipeLabel setFont:[UIFont systemFontOfSize:2]];
[swipeLabel setAdjustsFontSizeToFitWidth:YES];
[swipeLabel setBackgroundColor:[UIColor clearColor]];
[swipeLabel setNumberOfLines:1];

[self.view addSubview:swipeLabel];


[UIView animateWithDuration:1.5 delay:0 options:UIViewAnimationOptionAllowAnimatedContent animations:^
     CGFloat scaleFactor = 10.0f;
     swipeLabel.transform = CGAffineTransformMakeScale(scaleFactor, scaleFactor);
    [swipeLabel setAlpha:0];
  completion:^(BOOL finished) 

 ];

谢谢!

【问题讨论】:

你的代码到底有什么问题? 错的是我必须从64这样的字体大小开始,我正在寻找从0开始并将其放大到150的方式 Can font size of UILabel be changed with smooth animation on iPhone?的可能重复 【参考方案1】:
[UIView beginAnimations:nil context:nil];
label.transform = CGAffineTransformMakeScale(0.5,0.5);
[UIView commitAnimations];

这将使字体 %50 的大小变小。

【讨论】:

@user1553961 所以制作 CGAffineTransformMakeScale(1.5,1.5);例如。 @user1553961 你的意思是它越来越小而不是越来越大?还是什么都没有?

以上是关于如何为 UILabel 字体更改设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 UILabel 的 textColor 属性设置动画?

在位置之前为 UILabel 尺寸设置动画

如何为 UICollectionViewCell 的帧更改设置动画

更改设备方向时如何为uiimageview设置动画

如何为背景图像的更改设置动画?

如何为 iphone 应用程序设置动画以逐字显示文本?