Tag: iphone

我想动画,实际上是淡入淡出,“在”drawRect中

有没有办法让drawRect 从上一个场景动画到下一场? (令人惊讶的是) 你可以在drawRect中制作动画 – 尝试一下。 您可以淡化,翻译或动画任何其他属性。 然而,它从空白开始“从新鲜”开始。 因此,例如,如果您在drawRect中放置淡入式动画块,则前一个场景消失,新场景将从白色渐弱。 我希望屏幕从上一个图像 (在上一个drawRect循环中绘制)淡化到刚刚绘制的新图像…错误,正在绘制。 有没有办法做到这一点,也许通过操纵drawRect正在发生的事情来狡猾? 这似乎是一个非常常见的用例 – 从一个场景混合到另一个场景 。 有人知道这个秘密吗? 当然,显然这可以在核心动画环境中或以许多其他方式完成,但是将drawRect从一个drawRect淡化到下一个是一个明显的想法。 干杯。 由于WrightCS的天才,令人震惊的更新…… 感谢WrightCS,我们现在知道drawRect可以完美地处理动画。 只需将此代码粘贴到任何drawRect的末尾并尝试: self.alpha = 0.0; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:2]; self.alpha = 1.0; [UIView commitAnimations]; 它将整个drawRect视为一个巨大的块并将其包装在该动画中,无论它有多复杂。 是的,它甚至包括在屏幕外区域绘制,位图渲染或其他任何东西。 一切都变得生动了。 谁知道? 手头的问题 – 如何让它从前一个场景开始动画而不是从空白开始?

允许UIImagePickerController编辑video但不编辑图像

在Whatsapp中上传图像或video,似乎使用了UIImagePicker 。 可以在该视图中编辑video,但无法编辑图像。 似乎在SDK中, allowsEditing属性确定是否允许对图像和video进行编辑。 我如何获得像Whatsapp这样的行为,哪些video可以编辑但图像不能?

在iPhone 6.1 Simulator上完成了的运行

我正在开发一个新的Iphone应用程序,使用Xcode(版本4.6(4H127))和iPhone 6.1模拟器(Versión6.0(369.2))。 一开始一切都很棒:每次按下“运行”按钮,应用程序都被加载到模拟器中,我就能够测试它。 但有时它不起作用:当我按下运行按钮时,我只收到消息“已完成在iPhone 6.1模拟器上运行”。 代码成功编译(仅次要警告)。 主要的问题是,当我收到此消息时,我可以再次使用模拟器的唯一方法(在此项目中,其余的xcode项目似乎正常工作)是通过启动一个新项目并将每个文件添加到它。 我试图删除de派生数据,重新启动de simulator,重新启动计算机等。甚至我在模拟器工作时制作了快照,但是当我回到快照状态时,模拟器仍然无法工作。 我能做什么? 任何想法?

如何隐藏UITableView标题,然后重新出现?

我偶尔会看到我的UITableView的一部分,其中该部分中没有包含单元格。 在那种情况下,由于上部没有单元格,因此在彼此的顶部有两个标题。 我试图弄清楚如何暂时隐藏上面的标题,然后当我稍后回到页面时重新出现它。 我可以返回零-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section然后强制它在viewWillAppear中以某种方式再次调用? 另外,如果我使用[self.tableView reloadData]重新加载数据,那么如何返回UITableView标头的标准高度?

在测试期间,应用程序图标未显示在iPhone 5设备上

我有一个120×120图标图像,可以在模拟器上正常工作 – 但是当我在我的设备上尝试它时,图标不显示。 有什么想法吗?

如何使用MPMoviePlayerController播放video?

我使用以下代码使用MPMoviePlayerController播放video,但video未播放。 谁能告诉我为什么? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@”/one.mp4″]; NSString *mediaPath = [[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:filePath]; MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:mediaPath]]; [[moviePlayer view] setFrame:[[self view] bounds]]; [[self view] addSubview: [moviePlayer view]]; moviePlayer.scalingMode = MPMovieScalingModeAspectFit; [moviePlayer play];

自定义UIAlertView iphone

我有一个问题..我使用这个http://kwigbo.com/post/318396305/iphone-sdk-custom-uialertview-background-color来创建我自己的自定义UIAlertView。 我不知道为什么,但这不起作用: UILabel *theTitle = [theAlert valueForKey:@”_titleLabel”]; [theTitle setTextColor:[UIColor redColor]]; UILabel *theBody = [theAlert valueForKey:@”_bodyTextLabel”]; [theBody setTextColor:[UIColor blueColor]]; 标题的颜色不会改变.. texbody的颜色没关系。 如何自定义按钮?

如何在通过AppStore更新后测试对keychain属性的访问?

在“钥匙串服务编程指南”中,它说明了以下内容: “在iPhone上,Keychain权利取决于用于签署应用程序的配置文件。确保在不同版本的应用程序中始终使用相同的配置文件。” 哪个我没有问题,但我想测试一下,如果我在AppStore中为我的应用程序提供更新,它仍然可以访问存储在钥匙串中的旧值。 我尝试通过使用以ad-hoc分发配置文件签名的版本更新应用程序进行测试,该版本包含与原始版本相同的软件包ID和产品名称,但无法访问密钥链中的旧值。 是将更新提交到AppStore并希望它能够运行的唯一选择吗?

按型号定位iPhone应用程序(例如3G vs 3GS)

与info.plist文件中所需的设备function非常相似,是否可以配置应用程序以使其仅在某些设备型号上可用? 我知道如何通过设备系列(iPhone和iPod vs iPad)来定位它,但在这种情况下,我希望按模型进行定位。 我也知道如何以编程方式确定模型,但我想要的是iTunes以防止某些设备模型能够下载应用程序,这就是为什么通过info.plist这样做似乎是最好的方式。 例如,如果我想在iPhone 3GS(或iPhone / iPod 4)和上层而不是iPhone 3G上提供应用程序,有什么方法可以做到吗?

AVCaptureSession抓取帧时的准确时间戳

我在AVCaptureSession内部,我需要知道被捕获的帧的数量。 捕获开始时,我将帧数计数器重置为零。 因此,第一帧的时间戳将为零。 后续帧将具有这样的捕获时间戳,例如: 0 0.033 0.066 0.099 etc 但这些不是确切的数字,因为可以丢弃帧并且可能发生轻微的差异。 我需要知道捕获帧的确切时间。 我有这个方法,每次抓取一个帧时调用… – (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection 在这个方法中,我可以获得一个帧的CMTime并使用以下命令将其打印到控制台: CMTime timestamp = CMSampleBufferGetPresentationTimeStamp( sampleBuffer ); NSLog(@”%lld”, timestamp.value); 但这会给我一些疯狂的数字 156317265588132 156317307247388 156317348909678 156317390573453 156317432230603 一个数字和下一个数字之间的差异大约是41,659,256,它似乎不代表抓取帧时带小数位的秒数。 如果我将这个数字除以时间刻度,请使用 NSLog(@”%lld”, timestamp.value/timestamp.timescale); 对于25帧,数字将是相同的,并且仅在达到整秒时才会改变。 抓取框架时,如何获得带小数位的精确时间戳(以秒为单位)? 谢谢。