Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在iOS中实现字体的动画和效果_Objective C_Animation_Fonts - Fatal编程技术网

Objective c 如何在iOS中实现字体的动画和效果

Objective c 如何在iOS中实现字体的动画和效果,objective-c,animation,fonts,Objective C,Animation,Fonts,我想知道你能否帮我解答一个与iOS相关的问题 我想创建一个iPhone应用程序,它有一些整洁的文本效果 例如,我可能有一个计时器,当时钟达到10秒时,每秒都会脉冲,表示时间接近结束 或者,另一个例子可能是,当用户在游戏中按下不正确的按钮时,我会有一个非常快速的动画,它会增长我的文本,占据大部分屏幕,然后在我希望它结束时收缩为零(而不是消失) 我也希望使用Xcode中无法选择的字体 所以我的问题是,有没有人知道有一本像样的教程或书籍可以教你这些文字效果?其他使用自己字体和样式的应用程序(如渐变色等

我想知道你能否帮我解答一个与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
键列出这些自定义字体,即可轻松地将自定义字体添加到应用程序中