当有一个图像已经使用NSSearchPathForDirectoriesInDomains方法进行保存和加载过程时,我有一个关于比较Objective-C中的UIImages的问题.
我想要的目的是根据图像显示的内容,在点击时将用户引导到新的屏幕.
为简单起见,我们假设有两种可能性 - 黑色图像和绿色图像.单击黑色图像将转到xib1,单击绿色图像将转到xib2.
这很简单,并且一直有效,直到我实现了一个保存和加载系统.
要保存,请执行以下操作:
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
pngFilePath = [NSString stringWithFormat:@"%@/test.png",documentsDirectory];
data1 = [NSData dataWithData:UIImagePNGRepresentation([level1part1 objectAtIndex:0])];
[data1 writeToFile:pngFilePath atomically:YES];
Run Code Online (Sandbox Code Playgroud)
并加载我执行以下操作:
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
pngFilePath = [NSString stringWithFormat:@"%@/test.png",documentsDirectory];
UIImage *image = [UIImage imageWithContentsOfFile:pngFilePath];
[button1 setImage:image forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
这很好,当我退出程序并重新启动它时,图像会保留在屏幕上,如我所愿.假设现在出现在button1上的图像是绿色图像.
当我点击id为sender的按钮后调用以下代码(这是button1):
if(sender.currentImage == [UIImage imageNamed:self.greenImage])
{
VisitAlreadyCorrectScreen *screen = [[VisitAlreadyCorrectScreen alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:screen animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
即使currentImage是绿色图像,并且与我正在比较的绿色图像是相同的图像,我认为因为我在保存过程中将绿色图像保存到内存中,因此比较不起作用,因为它们保存在不同的地方在内存中 - 由以下NSLog验证:
Current Image: <UIImage: 0x95614c0>, and Yes …Run Code Online (Sandbox Code Playgroud) 我想知道你是否可以帮我解决iOS相关问题.
我想创建一个有一些整洁的文字效果的iPhone应用程序.
例如,我可能有一个计时器,当时钟达到10秒时,每秒钟然后脉冲指示时间接近完成.
或者,另一个例子可能是当用户在游戏中按下不正确的按钮时,我有一个非常快速的动画来增加我的文本,因此占据了屏幕的大部分 - 然后当我想要时缩小为空(而不是消失)它结束了.
这些中的每一个我也想使用Xcode中无法选择的字体.
所以我的问题是,有没有人知道一个体面的教程地方或书籍教授一些像这样的文字效果 - 以及其他使用自己的字体和样式的应用程序(如渐变颜色等)实际上如何在他们的应用程序中执行此操作?我想要创建每个数字的图像,并在每次想要显示分数或时间时使用这些图像,但这可能不是最佳方式.
任何帮助将非常感激,
非常感谢,
AC