如何使用 Objective-C 将字符添加到 iOS 中的 UILabel 动画?
Posted
技术标签:
【中文标题】如何使用 Objective-C 将字符添加到 iOS 中的 UILabel 动画?【英文标题】:How can I add characters to an UILabel animated in iOS with Objective-C? 【发布时间】:2016-08-13 14:53:40 【问题描述】:我尝试了什么
我创建了一个循环遍历 NSMutableArray
的递归函数,并且每次都会通过这个动画博客。这段代码调用了这个方法,因为我认为UILabel
上的动画不起作用的问题是它没有在主线程上运行。
[self performSelectorOnMainThread:@selector(writeText:)
withObject:_arrayAllLabels
waitUntilDone:YES];
动画有一个completion
块,它还检查动画是否完成,然后继续调用相同的函数。此外,我添加了一个额外的动画博客,但没有什么能让它能够平滑地将字符添加到标签。
[UIView animateWithDuration:1.5f
delay:1.0f
options:UIViewAnimationOptionCurveEaseOut
animations:^
//adding next character to text attribute of UILabel
completion:^(BOOL finished)
[UIView animateWithDuration:1.0f
animations:^
if ( finished )
[self performSelectorOnMainThread:@selector(writeText:)
withObject:_arrayAllLabels
waitUntilDone:YES];
completion:nil];
];
长什么样子
我搜索后发现的不正确
我已经环顾了一段时间并试图找到与我的问题相关的问题,但我发现的所有内容都指向一个方向,将 UILabel
的文本更改为另一个文本,没有单个字符
有人可以帮忙吗?
【问题讨论】:
这有用吗? github.com/tomknig/TOMSMorphingLabel 【参考方案1】:UILabel 的 setText 方法是不可动画的。 animateWithDuration:completion:
只会对帧、边界、中心、变换的变化进行动画处理...有关动画属性的列表,请参见此处的 Apple 文档:https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html
对于您的问题,您必须忘记使用 animateWithDuration:completion:
并自己创建动画,例如使用 NSTimer 来执行 addLetter: 方法每 x 秒...
【讨论】:
我以前也遇到过这样的问题,但那是很久以前的事了。现在我不确定我是否只是忘记了一些东西(比如 mainThread)。想知道有没有其他方法可以解决这个问题!但我会看看 NSTimer! :) xD 抱歉,我刚刚意识到您在谈论NSTimer
,完全正确!如果您停止使用语言太久,就会发生这种情况:)以上是关于如何使用 Objective-C 将字符添加到 iOS 中的 UILabel 动画?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据objective-C中的标签号将按钮添加到MutableArray?
如何在Objective-C中将char添加到NSNumber?
如何在 Objective-C 中使用 Swift 字符串枚举?
如何将 watchOS Swift 目标添加到用 Objective-C 编写的 iOS 应用程序中