我想知道你是否可以帮我解决iOS相关问题。
我想创建一个具有一些整洁文字效果的iPhone应用程序。
例如,我可能有一个计时器,当时钟达到10秒时,每秒钟然后脉冲指示时间接近完成。
或者,另一个例子可能是当用户在游戏中按下不正确的按钮时,我有一个非常快速的动画来增加我的文本,因此它占据了屏幕的大部分 - 然后缩小为空(而不是消失)当我希望它结束时。
我也希望使用Xcode中无法选择的字体。
所以我的问题是,有没有人知道一个体面的教程地方或书籍教授一些像这样的文字效果 - 以及其他使用自己的字体和样式的应用程序(如渐变颜色等)实际上是如何做到这一点的在他们的应用?我想创建每个数字的图像,并在每次想要显示分数或时间时使用这些图像,但这可能不是最佳方式。
非常感谢任何帮助,
非常感谢,
AC
答案 0 :(得分:8)
不需要将CoreText用于任何(顺便说一下,CoreText并不容易理解,相信我,我在这个框架上做了很多工作,在你的情况下,没有必要使用这个一个复杂的低级框架,而你可以使用更简单的方法做你想做的一切)
使用UIView
的基于块的动画方法执行“脉冲”动画非常简单,并将标签的transform
更改为CGAffineTransformScale
,这将动画缩放比例例如,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文档中的Core Animation Cook Book和Core Animation Programming Guide;但在你的情况下[UIView animationWithDuration:…]
变种应该足够了
只需在应用程序资源中添加字体(TTF文件),即可轻松地将自定义字体添加到应用程序中,然后使用Info.plist中的UIAppFonts
键列出这些自定义字体。有关详细信息,请参阅here in the Info Plist Key Reference。
您可以通过在图像的蒙版上绘制文本来执行此类操作。在图像上绘制渐变(使用CoreGraphics,请参阅Quartz 2D Programming Guide)并使用文本作为蒙版(蒙版的黑色部分是绘制部分,白色部分是透明的)。
但更简单的方法这样做是为了让您的资源中有一些图像用作图案(例如带有渐变的图像),并使用以下代码来使用此渐变颜色:
yourLabel.textColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourpattern.png"]];
您甚至可以使用CoreGraphics(或CAGradientLayer等)通过代码创建渐变UIImage
(而不是在资源中使用它)。
答案 1 :(得分:0)
听起来你想要一些低级别的绘图代码,比如使用Core Text
Core Text框架是一种先进的低级技术,用于布置文本和处理字体。 Core Text布局引擎专为高性能和易用性而设计,其速度是ATSUI(Apple Imaging Services for Unicode Imaging)的两倍。 Core Text布局API简单,一致,并与Core Foundation,Core Graphics和Cocoa紧密集成。
你的问题很普遍,所以很难给出一个具体的答案,但我首先要阅读这个框架文档。
此问题也可能有所帮助:https://stackoverflow.com/questions/2763757/core-text-tutorial