UICollectionVIew:在滚动时为单元格添加animation

我想我的UICollectionView项目在用户滚动浏览列表(我正在使用UICollectionViewFlowLayout的子类)中UICollectionViewFlowLayout 。 我在布局pipe理器中指定位置,我希望能够做的是也指定一个初始变换,并在正确的时间(当单元格第一次出现在屏幕上)在animation中应用。 要查看我的意思,请查看iOS上的Google Plus应用程序。 理想情况下,取决于细胞位置的不同变换。 我似乎无法find一种方法来找出何时显示一个单元格(没有等同于在UITableView的willDisplayCell )或任何指针去哪里去。 有什么build议么? 在这个屏幕截图中,您可以制作Google Plus中的animation: 另外,看看iPad上的iPhoto。 我不知道他们是否使用UIcollectionView(可能不是,因为它在iOS5上工作),但这是sorting,如果我正在寻找效果,照片似乎从右侧飞入。

如何在后台线程上高效地写入大文件到磁盘(Swift)

更新 我已经解决并删除了分心的错误。 如果还有任何问题,请阅读整篇文章,随时留下意见。 背景 我试图在iOS上使用Swift 2.0,GCD和完成处理程序将相对较大的文件(video)写入磁盘。 我想知道是否有更有效的方法来执行这项任务。 该任务需要在不阻塞主UI的情况下完成,同时使用完成逻辑,并确保操作尽可能快。 我有一个NSData属性的自定义对象,所以我目前正在NSData上使用扩展实验。 作为一个例子,备用解决scheme可能包括使用NSFilehandle或NSStreams以及某种forms的线程安全行为,从而比基于当前解决scheme的NSData writeToURL函数产生更快的吞吐量。 无论如何,NSData有什么问题? 请注意以下从NSData类参考( 保存数据 )的讨论。 我执行写入我的临时目录,但是我有一个问题的主要原因是,我可以看到在处理大型文件时在UI中明显的滞后。 这种滞后正是因为NSData不是asynchronous的(Apple Docs注意到primefaces写入会导致“大”文件的性能问题〜> 1mb)。 所以当处理大文件时,任何内部机制在NSData方法中都是有效的。 我做了一些更多的挖掘,并从苹果发现这个信息…“这种方法是理想的转换数据:/ / URL到NSData对象,也可用于同步阅读短文件如果您需要阅读可能的大文件 ,使用inputStreamWithURL:打开一个stream,然后一次读取一个文件。“ ( NSData类参考,Objective-C,+ dataWithContentsOfURL )。 这个信息似乎意味着如果将writeToURL移动到后台线程(如@jtbandes所build议的)是不够的,我可以尝试使用stream将文件写入后台线程。 NSData类及其子类提供了快速方便地将其内容保存到磁盘的方法。 为了尽量减less数据丢失的风险,这些方法提供了primefaces保存数据的选项。 primefaces写保证数据要么全部保存,要么完全失败。 primefaces写入通过将数据写入临时文件开始。 如果写入成功,则该方法将临时文件移动到其最终位置。 尽pipeprimefaces写入操作可以最大限度降低由于损坏或部分写入的文件而导致数据丢失的风险,但在写入临时目录,用户的主目录或其他可公开访问的目录时,它们可能并不合适。 任何时候您使用可公开访问的文件时,都应该将该文件视为不可信且潜在危险的资源。 攻击者可能会妥协或损坏这些文件。 攻击者也可以使用硬链接或符号链接replace文件,导致写操作覆盖或损坏其他系统资源。 在可公开访问的目录中工作时,避免使用writeToURL:atomically:方法(和相关的方法)。 而是使用现有的文件描述符来初始化NSFileHandle对象,并使用NSFileHandle方法来安全地写入文件。 其他select 关于并发编程objc.io上的一篇文章提供了有关“高级:背景下的文件I / O”的有趣选项。 一些选项也涉及到使用InputStream。 苹果公司也有一些旧的引用来读取和写入文件asynchronous 。 我正在发布这个问题,预计Swift的替代品。 一个合适的答案的例子 下面是可能满足这类问题的适当答案的一个例子。 (采取stream编程指南, 写入输出stream ) 使用NSOutputStream实例写入输出stream需要几个步骤: 用写入数据的存储库创build并初始化一个NSOutputStream的实例。 […]

Core Data父级ManagedObjectContext是否需要与子级上下文共享一个并发types?

我可以将我的ManagedObjectContext的父上下文设置为具有不同并发types的ManagedObjectContext吗? 例如: backgroundManagedObjectContext_ = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; [backgroundManagedObjectContext_ setPersistentStoreCoordinator:coordinator]; managedObjectContext_ = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; [managedObjectContext_ setParentContext:backgroundManagedObjectContext_]; 我的目标是(希望)快速保存managedObjectContext_(因为它只需要将内容保存到父内存中),然后让backgroundManagedObjectContext_在自己的队列上保存。 除非我碰巧需要在“前台”队列中做另一个保存,否则在后台保存我的用户应该永远不会看到很长的保存时间。 我遇到了看起来像是死锁的问题,但我不确定它们是否与此相关,或者如果我的问题在其他地方。 我可以或多或less地可靠地产生僵局的一个地方的细节: 我有一个主线程的托pipe对象上下文,它是由一个带有私有队列并发types的托pipe对象上下文来支持的,而且它有一个持久存储。 我有一些实体types(约5),每个实体types与另一个实体有一个或两个双向关系。 我的应用程序想要使用iCloud(我已经为这些testing拨了这个代码),所以它不能提供预填充数据库,当它检测到一个空数据库时,它需要build立它。 所以,当我看到一个空的数据库(这是在主线程上检查),我添加了大约4或8,除了其中一个实体types,最后一个约100(所有的增加发生在主线程)。 主线程执行saveContext。 在完成之后(没有错误),它会要求其他托pipe对象上下文运行一个也执行saveContext的块。 这个saveContext绝对是一个僵局参与者。 这也是“背景”NSManagedObjectContext完成的唯一的东西。 在这之后,确切的控制stream是有点模糊的,因为NSFetchedResultsController(一个给定的实体types(有〜3个成员),一个简单的sorting,批量大小为20左右)驱动下一轮的Core Data活动,但是TableViewController会调用它需要pipe理的项目数量,即“获取的结果控制器有多less结果”。 这个电话是僵局的另一面。 (所有这些都在主线程中)

如何testingSKPaymentTransactionStateDeferred?

iOS 8即将推出。 我们有Xcode beta 6 atm,但是仍然无法find关于如何正确testingFamily Sharing的文档(或者我错过了什么?)。 我的问题是如何正确设置沙箱与父母/孩子? 我试图让它在没有喜悦的情况下在beta 1中工作。 任何提示家伙? 更新: 苹果开发者论坛上的两个相关故事: 如何在iTunes Connect上创build儿童沙盒帐户?( https://devforums.apple.com/message/1030357#1030357 ) 在沙箱中testing“要购买”( https://devforums.apple.com/message/1005569#1005569 )

animationUITextField指示一个错误的密码

我怎样才能添加一个animation到UITextField来表明错误的密码就像Facebook应用程序(在login屏幕)或Mac OS Xlogin框中的? 先谢谢你。

如何在UITableView中实现UIVisualEffectView和自适应search

我想实现UIVisualEffectView来将一个模糊效果应用到一个视图来显示它背后的视图。 这个应该使其背景模糊的视图是一个UITableViewController ,它embedded在UINavigationController ,它将被呈现在iPad上的popup窗口中,或者它将在iPhone上以全屏模式呈现,这要归功于iOS 8自适应游戏(Popover Popover )。 当这个视图控制器处于popup窗口中时,我想让背景模糊popover下面的内容,当它显示为全屏时,我想让背景模糊前一个视图控制器。 我试图实现这一点,并没有取得成功。 我甚至无法得到模糊效果为popover工作。 我认为这个代码应该做的伎俩: //In viewDidLoad on the UITableViewController subclass: let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light)) effectView.frame = tableView.frame tableView.addSubview(effectView) 我也尝试添加子视图到tableView.backgroundView ,我试图设置backgroundView到我的effectView ,我尝试使用Autolayout约束,而不是设置框架,但没有任何工作。 你能帮我完成想要的行为吗? 我试图获得的一个例子: iPad popover: iPhone模态演示:

使用AutoLayout约束来隐藏UIView

不时,我有一个子视图,我想从布局中删除。 它不仅应该被隐藏起来,而且也不应该被视为视图“stream”的一部分,可以这么说。 一个例子: 我正在寻找一个策略,以编程方式隐藏橙色视图。 框的布局和内容是通过自动布局来实现的。 有两件事要注意: 橙色框根据内容定义其垂直高度,以及边缘的一些顶部/底部偏移量。 因此,将标签的文本设置为零只会将视图缩小到内部边距,因此不会有0的高度。 同样地,三个盒子之间的垂直间距意味着即使桔子盒的高度为0,红色和黄色之间的差距也是所需的两倍。 可能的解决scheme 我最好的build议是为橙色框添加一个约束,将其高度设置为0.为此,我需要为橙色框内的所有垂直约束使用不需要的优先级。 同时,容器应该更新用于分隔框的约束的常量。 我不太喜欢这种方法,因为橙色盒子类正在定义它的内在约束,因为它的超级观点的行为。 也许我可以忍受它,如果橙色框视图,而不是暴露一个'崩溃'的方法,自己添加0高度约束。 有更好的方法吗?

何时使用核心数据的NSMainQueueConcurrencyType?

初始化一个使用NSMainQueueConcurrencyType的NSManagedObjectContext仅适用于MOC有一个使用NSPrivateQueueConcurrencyType初始化的子MOC的情况? 为了给出一些背景知识:我的应用程序有一个传统的结构,主表视图是由NSOperation驱动的,而数据是使用具有自己的MOC的NSOperation子类从Web服务asynchronous导入的。 我不确定这种情况下的两个MOC是否应该使用NSConfinementConcurrencyType (我相信是默认的),或者主线程上的获取结果控制器的MOC是否应该使用NSMainQueueConcurrencyType ,后台MOC应该使用NSConfinementConcurrencyType 。

在ReactiveCocoa中链接相关的信号

在ReactiveCocoa中,如果我们链接几个依赖信号,我们必须使用subscribeNext:链中的下一个信号来接收生成的前一个信号的值(例如asynchronous操作的结果)。 所以一段时间后,代码变成这样的东西(不必要的细节被省略): RACSignal *buttonClickSignal = [self.logIn rac_signalForControlEvents:UIControlEventTouchUpInside]; [buttonClickSignal subscribeNext:^(UIButton *sender) { // signal from a button click // prepare data RACSignal *loginSignal = [self logInWithUsername:username password:password]; // signal from the async network operation [loginSignal subscribeNext:^void (NSDictionary *json) { // do stuff with data received from the first network interaction, prepare some new data RACSignal *playlistFetchSignal […]

如何删除设备上的iOS崩溃记者日志?

我在我的日志中收到这条消息。 “不保存崩溃日志,因为我们已经达到了将日志存储在磁盘上的限制。同步或以其他方式清除/ var / mobile / Library / Logs / CrashReporter中的日志以保存新日志 我认为这是指设备,因为我已经删除XCode crashreports。 如何删除设备上的iOS崩溃记者日志?