当我尝试从我的代码加载相机时,相机预览为黑色.如果我等待10-20秒,它将显示真实的相机预览.我发现了几个问题,其中一些问题表明在后台运行其他代码应该是这个问题的原因.但是我没有在后台运行任何代码.我该怎么解决这个问题?
这是我运行相机的代码
UIImagePickerController *photoPicker = [[UIImagePickerController alloc] init];
photoPicker.delegate = self;
photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:photoPicker animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud) 我试图用来CAShapeLayer掩盖CALayer我的iOS应用程序,因为它需要一小部分CPU time掩盖图像与手动屏蔽一个bitmap context;
当我有几十个或更多图像叠加在一起时,CAShapeLayer蒙面UIImageView很慢移动到我的触摸.
这是一些示例代码:
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"SomeImage.jpg" ofType:nil]];
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, NULL, CGRectMake(0.f, 0.f, image.size.width * .25, image.size.height * .25));
for (int i = 0; i < 200; i++) {
SLTUIImageView *imageView = [[SLTUIImageView alloc]initWithImage:image];
imageView.frame = CGRectMake(arc4random_uniform(CGRectGetWidth(self.view.bounds)), arc4random_uniform(CGRectGetHeight(self.view.bounds)), image.size.width * .25, image.size.height * .25);
CAShapeLayer *shape = [CAShapeLayer layer];
shape.path = path;
imageView.layer.mask = shape;
[self.view addSubview:imageView];
[imageView release]; …Run Code Online (Sandbox Code Playgroud) 我只是想知道是否有一种快速简便的方法可以将所有属性的各种值打印到日志中以进行调试.就像我想知道所有BOOL,浮点数等的值是什么.
我已经在iOS上编程了两年而从未在mac上编程.我正在开发一个小工具,用于处理我在iOS开发中的一些简单的图像需求.无论如何,我在iOS中运行的代码运行完美,但我完全不知道mac的等价物.
我尝试了很多不同的东西,但我真的不明白如何在"drawRect:"方法之外的Mac上启动图形上下文.在iPhone上我只会使用UIGraphicsBeghinImageContext().我知道其他帖子曾说过使用lockFocus/unlockFocus,但我不确定如何根据我的需要做到这一点.哦,我真的很想念UIImage的"CGImage"属性.我不明白为什么NSImage不能有一个,虽然听起来有点棘手.
这是我在iOS上的工作代码 - 基本上它只是从掩码中创建一个反射图像并将它们组合在一起:
UIImage *mask = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"Mask_Image.jpg" ofType:nil]];
UIImage *image = [UIImage imageNamed::@"Test_Image1.jpg"];
UIGraphicsBeginImageContextWithOptions(mask.size, NO, [[UIScreen mainScreen]scale]);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(ctx, 0.0, mask.size.height);
CGContextScaleCTM(ctx, 1.f, -1.f);
[image drawInRect:CGRectMake(0.f, -mask.size.height, image.size.width, image.size.height)];
UIImage *flippedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGImageRef maskRef = mask.CGImage;
CGImageRef maskCreate = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([flippedImage CGImage], maskCreate);
CGImageRelease(maskCreate);
UIImage *maskedImage = [UIImage imageWithCGImage:masked];
CGImageRelease(masked);
UIGraphicsBeginImageContextWithOptions(CGSizeMake(image.size.width, image.size.height + (image.size.height * .5)), NO, [[UIScreen mainScreen]scale]);
[image drawInRect:CGRectMake(0,0, …Run Code Online (Sandbox Code Playgroud) 我希望能够查看我的实际iPad/iPhone的文件系统,以验证文件是否正确写入.我可以使用模拟器通过导航到Users/me/Library/Application Support/iPhone Simulator/6.0/Applications/specific app/Documents来完成此操作.在这里,我可以看到我在我的应用程序中编写的所有文件和数据.
如果有人知道应用程序或某种方式查看我的应用程序的文件系统而没有JAIL BREAK的话,我会非常乐于助人
提前致谢
首先,我在编程中只使用了Objective-c方法.我决定做几个快速的数学计算作为c函数,然后最终需要它们用于多个类.所以我把c函数放在一个单独的.h文件中.这工作正常,直到我尝试将.h文件导入多个类.然后我收到这个错误:
重复符号*_myFunction*blah blah blah链接器命令失败,退出代码为1(使用-v查看调用)
如何在没有此链接错误的情况下在多个类中使用ac函数.我试过在我需要的类中定义函数,但似乎即使它们是不同的类,如果函数名相同,我也会得到这个错误.我在这里可能很疯狂,但有些帮助理解会很棒.
我有一种情况,用户将触摸UIButton,虽然他们可能已经触摸它,我需要能够取消它或导致它失败.
我曾尝试使用button.enabled和userInteractionEnabled,但两者都没有动态.两者都必须在触摸开始之前设置.
我可以在触摸后触摸时使按钮失效吗?
我试图在自定义UIButton上为我的标题添加下划线但是按照这里找到的示例,我无法在屏幕上显示它.
这是我尝试使用的代码:
NSMutableAttributedString *commentString = [[NSMutableAttributedString alloc] initWithString:@"The Quick Brown Fox"];
[commentString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [commentString length])];
[button setAttributedTitle:commentString forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
这没有显示出来.但是,如果我只是做一个常规的,像这样:
[button setTitle:@"The Quick Brown Fox" forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
这显示很好.有人能告诉我我错过了什么吗?
我在我的应用程序中遇到了问题.我一直在测试,直到现在主要是在我的iPad 3上偶尔检查我的iPad 1,以确保一切顺利.
我正在我的应用程序中播放UIImageView动画,它在退出之前只保留"已接收内存警告"消息.
我一直在仪器中使用对象分配工具,但据此,我的内存使用率很低.所以在研究了一下之后,我发现了Larson先生的这篇文章:https://stackoverflow.com/a/5627221/329900
现在我正在使用Memory Monitor工具.但是,我不明白我为什么要放弃.第一代.iPad拥有256MB内存.现在我知道我不能全部使用...有人说你不应该使用超过100MB.
那是真正的记忆,还是虚拟记忆...或者可能是某种组合?我的实际内存一直在20到25MB之间,但崩溃时虚拟内存大约为190 - 205MB.
这是一个截图:
有人能够对此有所了解吗?
出于测试目的,我需要确保我的应用程序处理尝试正确访问用户照片的所有方案.
一旦用户看到要求访问照片的对话框,用户就不会再为该应用程序呈现它......至少我无法弄清楚它们是如何形成的.
显然,如果用户选择"是",则授予访问权限,并且将继续访问,除非在用户的"设置"应用程序中更改了设置.或者,如果选择"否",则在更改相同设置之前,您将无法访问.
但是对于测试,我想确保我的应用程序在用户第一次出现对话框时正确处理任一场景.我似乎只能测试一次.之后,似乎没有任何方法可以再次显示此对话框.不知何故,即使删除并重新安装该应用程序,也会记住首次显示时选择的选项,并且永远不会显示该对话框.
我可以再次测试它的唯一方法是更改包标识符,清理并再次运行应用程序.这实际上在设备上安装了另一个或"新"应用程序,并显示了对话框.这是一种用于测试目的的长期工作.还有什么我可以做的吗?
ios ×7
objective-c ×5
uibutton ×2
c ×1
calayer ×1
cgcontext ×1
cocoa-touch ×1
converter ×1
dialog ×1
filesystems ×1
instruments ×1
ios6 ×1
macos ×1
masking ×1
nslog ×1
performance ×1
properties ×1
sandbox ×1
testing ×1
xcode ×1