Objective c 如何在iOS中实现字体的动画和效果
我想知道你能否帮我解答一个与iOS相关的问题 我想创建一个iPhone应用程序,它有一些整洁的文本效果 例如,我可能有一个计时器,当时钟达到10秒时,每秒都会脉冲,表示时间接近结束 或者,另一个例子可能是,当用户在游戏中按下不正确的按钮时,我会有一个非常快速的动画,它会增长我的文本,占据大部分屏幕,然后在我希望它结束时收缩为零(而不是消失) 我也希望使用Xcode中无法选择的字体 所以我的问题是,有没有人知道有一本像样的教程或书籍可以教你这些文字效果?其他使用自己字体和样式的应用程序(如渐变色等)是如何在他们的应用程序中做到这一点的?我在考虑创建每个数字的图像,并在每次我想要显示分数或时间时使用这些图像,但这可能不是最佳方式 任何帮助都将不胜感激 非常感谢Objective c 如何在iOS中实现字体的动画和效果,objective-c,animation,fonts,Objective C,Animation,Fonts,我想知道你能否帮我解答一个与iOS相关的问题 我想创建一个iPhone应用程序,它有一些整洁的文本效果 例如,我可能有一个计时器,当时钟达到10秒时,每秒都会脉冲,表示时间接近结束 或者,另一个例子可能是,当用户在游戏中按下不正确的按钮时,我会有一个非常快速的动画,它会增长我的文本,占据大部分屏幕,然后在我希望它结束时收缩为零(而不是消失) 我也希望使用Xcode中无法选择的字体 所以我的问题是,有没有人知道有一本像样的教程或书籍可以教你这些文字效果?其他使用自己字体和样式的应用程序(如渐变色等
AC听起来您需要一些像使用 核心文本框架是一种高级、低级的文本布局和字体处理技术。为实现高性能和易用性而设计的核心文本布局引擎的速度是ATSUI(用于Unicode图像的苹果类型服务)的两倍。核心文本布局API简单、一致,并与核心基础、核心图形和COCOA紧密结合。 您的问题非常笼统,因此很难给出具体的答案,但我将首先阅读该框架文档
另外,这个问题可能会有所帮助:听起来您需要一些像使用 核心文本框架是一种高级、低级的文本布局和字体处理技术。为实现高性能和易用性而设计的核心文本布局引擎的速度是ATSUI(用于Unicode图像的苹果类型服务)的两倍。核心文本布局API简单、一致,并与核心基础、核心图形和COCOA紧密结合。 您的问题非常笼统,因此很难给出具体的答案,但我将首先阅读该框架文档
另外,这个问题可能会有所帮助:无需使用CoreText进行任何操作(顺便说一句,CoreText不是那么容易理解,相信我,我在这个框架上做了很多工作,在您的情况下,没有必要使用如此复杂的低级框架,而您可以使用更简单的方法来做任何您想做的事情) 1.动画 使用
UIView
的基于块的动画方法并将标签的transform
更改为cGrafineTransformScale
来制作“脉冲”动画非常简单,这将使缩放从100%变为130%,然后再变回100%
使标签脉冲大小从100%到130%的最简单示例是使用以下代码:
[UIView animateWithDuration:0.5 animations:^{
// grow the label up to 130%, using a animation of 1/2s
myLabel.transform = CGAffineTransformMakeScale(1.3,1.3);
} completion:^(BOOL finished) {
// When the "grow" animation is completed, go back to size 100% using another animation of 1/2s
[UIView animateWithDuration:0.5 animations:^{
myLabel.transform = CGAffineTransformIdentity;
}];
}];
当然,这是一个简单的示例,您可以使用其他更完整的[UIView animationWithDuration:…]变体自定义动画(添加延迟、控制动画曲线等)
您甚至可以使用CoreAnimation构建显式和更详细的动画,有关构建更复杂动画的更多详细信息,请参阅和Apple文档中的;但是在您的情况下,[UIView animationWithDuration:…]
变体应该足够了)
2.自定义字体
只需在应用程序资源中添加字体(TTF文件),然后使用Info.plist中的UIAppFonts
键列出这些自定义字体,就可以轻松地将自定义字体添加到应用程序中。有关更多信息,请参阅
3.文本上的渐变色
您可以通过在图像的遮罩上绘制文本来执行此类操作。在图像上绘制渐变(使用CoreGraphics,请参见),并将文本用作遮罩(遮罩的黑色部分绘制,白色部分透明)
但更简单的方法是在您的资源中使用一些图像作为图案(例如,具有某种渐变的图像),并使用以下代码使用此渐变颜色:
yourLabel.textColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourpattern.png"]];
您甚至可以使用CoreGraphics(或CAGradientLayer或其他东西)通过代码创建渐变UIImage
。无需使用CoreText进行任何操作(顺便说一句,CoreText并不容易理解,相信我,我在这个框架上做了很多工作,在你的情况下,没有必要使用如此复杂的低级框架,而你可以使用更简单的方法做任何你想做的事情)
1.动画
使用UIView
的基于块的动画方法并将标签的transform
更改为cGrafineTransformScale
来制作“脉冲”动画非常简单,这将使缩放从100%变为130%,然后再变回100%
使标签脉冲大小从100%到130%的最简单示例是使用以下代码:
[UIView animateWithDuration:0.5 animations:^{
// grow the label up to 130%, using a animation of 1/2s
myLabel.transform = CGAffineTransformMakeScale(1.3,1.3);
} completion:^(BOOL finished) {
// When the "grow" animation is completed, go back to size 100% using another animation of 1/2s
[UIView animateWithDuration:0.5 animations:^{
myLabel.transform = CGAffineTransformIdentity;
}];
}];
当然,这是一个简单的示例,您可以使用其他更完整的[UIView animationWithDuration:…]变体自定义动画(添加延迟、控制动画曲线等)
您甚至可以使用CoreAnimation构建显式和更详细的动画,有关构建更复杂动画的更多详细信息,请参阅Apple文档中的和;但在您的情况下,[UIView animationWithDuration:…]
变体应该足够了)
2.自定义字体
只需在应用程序资源中添加字体(TTF文件),然后使用Info.plist中的UIAppFonts
键列出这些自定义字体,即可轻松地将自定义字体添加到应用程序中