Tag: ios7

NSURLSession后台下载 – 恢复networking故障

在阅读了关于使用新的iOS7 api(NS​​URLSession)进行背景下载的Apple文档之后,我感到有点失望。 我确定苹果公司正在pipe理暂停/恢复在后台的networking可用性(或提供这样做的选项),但没有… 所以阅读文档,这是我们得到的: https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/URLLoadingSystem/NSURLSessionConcepts/NSURLSessionConcepts.html 当任何任务完成时,NSURLSession对象会调用委托的URLSession:task:didCompleteWithError:方法,如果任务成功完成,则返回nil。 如果任务是可恢复的下载任务,则NSError对象的userInfo字典将包含NSURLSessionDownloadTaskResumeData项的值。 您的应用程序应使用可达性API来确定何时重试,然后应调用downloadTaskWithResumeData:或downloadTaskWithResumeData:completionHandler:创build新的下载任务以继续下载。 转到步骤3(创build和恢复任务对象)。 到目前为止,我理解的解决scheme,但我的问题是:什么架构是最好的处理丢失的networking,并在后台恢复下载? 在我身边,我使用可达性,每当networking可用,我恢复所有任务(在创build时通过NSArray引用),并在networking丢失时挂起它们。 这在前台运行良好,但对于后台,我需要帮助以下几点: 如果我的应用程序在前台没有连接,如果我没有连接到后台,所有我的任务将保持暂停状态,如果networking可用,则不会返回。 在后台丢失networking,停止所有的下载/任务。 场景: 在前台,我开始下载我的任务 我去背景和10秒后切换到“aireplan模式” 我的所有任务都有错误。 所以在方法URLSession:任务:didCompleteWithError:我使用downloadTaskWithResumeData恢复他们,或者如果我不能(因为有些没有足够的恢复数据)我创build一个新的任务,而不恢复它(除非networking回到那个时间)。 然后,我把无线上网 由于我仍然在后台,当networking回来而不启动应用程序时,我无法触发“简历”… 我如何解决这些问题? 我错过了什么吗?

iOS7的Safari浏览器:保存到主屏幕和持久的令牌

对于iOS 6. [某些]起,全屏Web应用程序的Cookie,SQLite数据和localStorage数据与Safari数据分开存储。 我有一个令牌,我需要在保存到主屏幕时持久保存到主屏幕应用程序。 这里有一个cookiestesting器。 并在这里讨论。 有没有人find一个优雅的解决这个问题? 非常难看的解决scheme也将被视为:)

在iOS 7下,如何隐藏和显示状态栏(每当我想要的时候)

说一个用户在一个视图控制器,并希望进入一个“全屏”types的模式隐藏状态栏,在iOS 6下,这是一个简单的方法调用来隐藏/显示状态栏,但不pipe它看起来如何坚持在iOS 7下。 我见过这样的解决scheme: – (BOOL)prefersStatusBarHidden { return YES; } 但是这不允许在运行时切换。 (它不接受任何论点。) 在我的info.plist中,我将View controller-based status bar appearance设置为NO 。 我有智慧。 我如何隐藏它?

如何使用iOS基础SDK 6.1将项目部署到使用iOS 7的设备

我一直在这个问题上浪费了我整整一天,并找不到解决scheme:我一直在开发与iOS 6.1 SDK的应用程序,整个devise依赖于iOS 6.1 UI。 昨天,我把手机更新到了iOS 7,更新完成后,从备份中恢复的以前部署的应用看起来和以前一样工作(在iOS 6.1上); 一切都很好。 但是,我不得不将Xcode更新到版本5,所以我可以在开发过程中继续将连续的debugging版本部署到我的iOS 7设备。 在更新到Xcode 5之前,我已经从Xcode的内部文件夹中备份了iPhoneOS6.1.sdk包; 然后更新到Xcode 5,然后将iPhoneOS6.1.sdk包放回到它的文件夹中,旁边是安装了Xcode 5的iOS 7 SDK。 我已经将项目的基础SDK切换到了基本SDKselect器列表中的iOS 6.1,并确保在界面生成器中我的所有Storyboard / XIB都设置为iOS 6.1。 但是,当我将应用程序部署到我的手机时,它看起来像垃圾,因为它与iOS 7 UI元素一起显示。 如果我使用装有iOS 6.1的设备,一切看起来都不错。 如果我select在iOS 7设备上进行debugging,它看起来像XCode不会给我select的基础SDK,并将应用程序链接到iOS 7。 我如何强制Xcode,将相同的6.1链接的东西部署到所有设备,无论它安装的iOS版本?

UIImagePickerController编辑视图圆形覆盖

我已经能够完成我一直想要完成的工作了,那就是复制iOS内置的圆形照片裁剪器,用于内置的联系人应用程序。 然而,我坚持试图让我的CAShapeLayers正确的做出。 我试图做一个透明的320像素直径的圆圈,其余的视图充满了0.9 alpha黑色背景。 圆形和矩形是在正确的位置,但是,圆形是不完全透明的,就像我需要的那样。 我失去了如何解决这个问题。 我感谢您的帮助! 代码和屏幕截图: – (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated { if ([navigationController.viewControllers count] == 3) { CGRect screenRect = [[UIScreen mainScreen] bounds]; CGFloat screenHeight = screenRect.size.height; UIView *plCropOverlay = [[[viewController.view.subviews objectAtIndex:1]subviews] objectAtIndex:0]; plCropOverlay.hidden = YES; CAShapeLayer *circleLayer = [CAShapeLayer layer]; if (screenHeight == 568) { [circleLayer setPosition:CGPointMake(0.0f,124.0f)]; } else { […]

如何在没有状态栏重叠的情况下在iOS7上显示视图控制器

当我将应用程序迁移到iOS 7时,当呈现视图控制器时,导航栏出现在状态栏下。 我想很多人都遇到过这个问题。 以下是我所看到的截图: 要求: 新视图必须出现“模态”,即我需要presentViewController。 显示某种导航栏或工具栏,状态栏采用iOS 7风格的导航栏的背景颜色。 它必须在iOS 6上工作。 我正在使用xib来处理布局,并启用了自动布局。 选项: A.将视图的框架向下移动一点。 呃,我们是否回到了iOS 5以前的版本,并且使用了相框? 另外,与自动布局混合通常不是一个好主意。 B.在导航栏下方添加一点空隙。 选项A和B的一个缺点是状态栏不会融入您的导航: C.以编程方式添加约束。 主要的缺点是你将不得不使用约束和计算导航和状态栏的高度。 呸。 D.拉伸导航栏/工具栏的高度以包含状态栏的区域。 在iOS 7上看起来不错,但在iOS 6上rest。您需要以编程方式更新导航栏的高度,并确保视图的其余部分适当更新。 乱。 E.在IB中与iOS6 / 7三angular洲混淆。 多个缺点:你会硬编码的ios6 / 7三angular洲。 也不适用于自动布局。 F.使用嵌套的UINavigationController。 这是我select的解决方法。 见下面的答案。

移动固定定位元素的iOS 7input元素

我正在尝试为iOS 7重新编译一个应用程序,因为迄今为止还没有一个应用程序能够正常工作。 其中一个问题是我在UIWebViews中使用了一些input。 文本input,捡拾器等 现在,当iOS 7shiny的白色键盘出现时,网页中的所有底部固定元素(例如确认button)向上滚动,就好像虚拟键盘的“顶部”是我的UIWebView的新底部一样。 这是与iOS6.x完全不同的行为 有没有什么魔术让虚拟键盘的行为像过去一样工作,而不向JSView注入JS / CSS?

本地化资产目录

我知道这是一个新function,这可能是不可能的,但我希望能够以不同的语言本地化资产目录,以显示本地化的启动图像。 这是可能的XCode 4只是本地化的图像,但与iOS7应用程序不起作用。 你知道这可能吗?

好的教程或在IOS 7中使用Core.Data

我一直在尝试使用这个教程 。 但我希望它被保存在主线程以外的线程中。 到目前为止,我无法得到上面的教程工作? 我也试过这个 有任何想法吗?

在iOS 7手势识别器的问题

我添加了几个UIView对象(例如5)到屏幕上,一个在另一个里面。 这个例如view5.superview = view4 , view4.superview = view3 , view3.superview=view2 , view2.superview = view1 。 对于所有这些UIView我设置uitapgesturerecognizer; 对于view1-4,我只是在callback中做NSLog(@“tap%@”,self),而对于view5,我设置了以下内容:从层次结构中删除view4,然后把相同的对象view4'放在层次结构的相同位置。 这个对象还包含view5', UITapGestureRecognizer设置UITapGestureRecognizer (实际上,我用相似的一个replace标记的一部分)。 然后我开始点击view5。 有些时候,view5一直在捕捉它的抽头,一切正常,但随后的抽头数(每当这个数字不同时),其中一个view1-4对象开始捕捉这个抽头,尽pipe我们仍然在点击view5。 整个问题具有随机性 – 有时发生在第十次发射,有时发生在第二次发射。 有时候错误的物体会在第一次敲击时开始捕捉水龙头。 当我遇到一切错误的时候,我也不知道什么东西会碰到水龙头。 视图(n + 1)的帧被设置为例如帧视图(n)的一半,而视图1的帧 – 例如(0,0 320,460)。 上述所有使用UI对象的操作都是在主线程中进行的,而且我所讲的所有关于iOS 4.3 – 6.1的工作都有很多复杂的例子。 但是iOS7使它成为某种随机的地狱。 更新:我创build了一个示例项目,以简化debugging过程。 点击不添加/删除子视图操作。 在屏幕上只有4个视图,点击应用程序logging点击的视图。 所以,你需要挖掘最小的观点(4)。 如果在日志中看到“点击4点击4点击4点…” – 这是一切正常的情况下,停止和再次运行,停止和再次运行,停止和再次运行等等。在一些运行(也许10 +成功的运行)你不会在第一行看到“点击4”,你会看到“点击1”或“点击2”或“点击3”,它会继续 – 这是坏的情况。 示例项目可以从这里下载: http : //tech.octopod.com/test/BuggySample.zip (在档案中只有33 Kb)。 更新2 […]