Tag: cocoa

UICollectionViewselect并取消select问题

所以我有一个主要的对象,有许多图像相关联。 一个图像也是一个对象。 假设你有一个集合视图控制器,并且在你拥有的控制器中 cellForItemAtIndexPath 以及基于主要的对象,如果它有与之相关的当前图像,我想设置为true。 但是我希望用户能够在任何时候“取消”当前单元格以取消与主要对象的关联。 我发现如果你设置“select为真” – 如果主要对象和cellForItemAtIndexPath图像之间有关系,取消select不再是一个选项。 在 didDeselectItemAtIndexPath 和 didSelectItemAtIndexPath 我testing一个日志,看看他们是否被称为。 如果一个单元格被设置为选中 – 下一个被调用,但如果我从来没有设置单元格在cellForItemAtIndexPath中select我可以select和取消select所有我想要的。 这是集合视图应该工作的预期方式吗? 我阅读文档,似乎没有谈到这是如此。 我解释文档意味着它工作的表格视图单元格的方式。 有一些明显的变化 这也显示控制器设置正确,并使用适当的代表方法….嗯

UICollectionView像Springboard一样的文件夹

我试图达到以下效果: UICollectionView显示父types对象的单元格网格,例如相册。 当我点击这些项目中的一个时,我想将该元素滚动到屏幕的顶部,并从中打开一个像跳板一样的文件夹。 在该文件夹区域内,应显示另一个集合,包括详细信息,即该专辑的各个照片。 在剩余的“父”视图中点击再次closures该文件夹。 看到这个模式: 到目前为止,我所做的是定期收集相册的视图。 当我select一个,它滚动到选定的项目顶部,然后使用JWFolders在该地方打开一个空的文件夹。 一旦显示,我触发周围的UINavigationController推我的第二个视图控制器的细节项目。 那个被放下,所以用户看起来好像还是一样的。 这种方法有几个问题,我想知道如何更好地做到这一点: JWFolders截图并向上/向下animation的两半来实现开放效果。 这是可以的,但在iPad3上很慢,因为它移动了很多像素,而且iPad3的GPU还不能完成任务。 第二个视图需要像素完美匹配的第一个顶部。 这很可能会意外中断。 我对视图控制器转换的animation是有限的。 默认的UINavigationController从右侧推入并不合适。 我忽略了做一个交叉溶解,但仍然是非常不理想的。 我想指出如何以可维护的方式来处理这个问题,而不需要对框架devise要做的事情进行太多的创造性攻击。 我可能会在这里忽略一些显而易见的东西,所以我们对这个例子或者一般性的build议有所指导 更新: 我改变了一下方法。 现在我使用具有两个embedded式集合视图控制器的容器视图控制器。 一个用于“专辑”,另一个用于底部的“照片”部分。 在两者之间的中间使用UIImageView我可以得到三angular形向上完成。 从维护的angular度来看,这样做也很好,因为这样可以使两个集合完全分开处理,从而简化维护过程。 该应用程序使用自动布局,所以我可以通过修改约束来更改每个embedded视图所占用的空间量。 这比使用JWFolders的基于截图的方法快得多,并且在iPad3上也能很好地工作。 这几乎让我想去的地方。 剩下的一件事就是让开场animation正确。 我想同时滚动“专辑”collections集,以便点击的项目将显示在顶部,并使用指向“相册”单元格的三angular形展开照片collections集。 我可以以某种方式通过布局约束“连接”下部视图到该单元格,以便scrollToItemAtIndexPath:atScrollPosition:animated: call拖动下部视图打开?

是否可以区分locking设备和发送应用程序到背景?

我有一个应用程序需要做一些事情,当它被发送到后台使用主页button和其他的东西,当设备被locking使用顶部的硬件button。 解决这些需求的标准方法是通过UIApplication发出的通知和委托方法。 在iOS 4上,它们看起来像这样: // Pressing the home button Will resign active. Did enter background. // Tapping app icon on Springboard Will enter foreground. Did become active. // Pressing the lock button Will resign active. // Unlocking the device Did become active. 换句话说,在locking和背景之间很容易判断。 在iOS 5上,行为改变了: // Pressing the home button Will resign active. Did enter […]

强/弱/保留/ unsafe_unretained / assign

综合属性的属性:保留/分配 保留 – 保留,旧值被释放并被分配 分配 – 它只被分配 所有权属性: IOS5 = strong / weak IOS4 = retain / unsafe_unretained 强(iOS4 =保留) – 我是主人,你不能在这个目标罚款之前释放这个=保留 弱(iOS4 = unsafe_unretained) – 与分配,保留或释放相同的东西 所以unsafe_unretained ==分配? @property (nonatomic, assign) NSArray * tmp; 等于? @property (nonatomic, unsafe_unretained) NSArray * tmp; 反之亦然? 如果是这样,哪一个更喜欢在iOS4,或为什么有(unsafe_unretained),如果它完全相同的分配? 并在iOS4的代表应该unsafe_unretained或分配?

核心数据的独特属性

是否有可能使核心数据属性唯一,即没有两个MyEntity对象可以具有相同的myAttribute? 我知道如何执行这个编程,但我希望有一种方法来使用xcode中的graphics数据模型编辑器。 我正在使用iPhone 3.1.2 SDK。

检测NSString的语言

有人告诉我有关Cocoa语言识别的课程。 有人知道它是哪一个吗? 这不工作: NSSpellChecker *spellChecker = [NSSpellChecker sharedSpellChecker]; [spellChecker setAutomaticallyIdentifiesLanguages:YES]; NSString *spellCheckText = @"Guten Tag Herr Mustermann. Dies ist ein deutscher Text. Bitte löschen Sie diesen nicht."; [spellChecker checkSpellingOfString:spellCheckText startingAt:0]; NSLog(@"%@", [spellChecker language]); 结果是'en',但应该是'de'。 谢谢…

NSTimeZone:localTimeZone和systemTimeZone有什么区别?

在NSTimeZone类下,有+ localTimeZone和+ systemTimeZone。 我在iPhone模拟器上做了一个testing,都返回NSTimeZone对象指示相同的时区。 有什么不同? 哪一个我应该用来找出iPhone的时区设置? 谢谢 我的testing: NSLog(@"Local Time Zone %@",[[NSTimeZone localTimeZone] name]); NSLog(@"System Time Zone %@",[[NSTimeZone systemTimeZone] name]);

在Xcode中为无法识别的select器创build断点

是否有可能在Xcode中设置断点,让debugging器只在无法识别的select器上停止? 我有其他exception是触发,我只想触发unrecognized selectorexception,没有别的。

从float或double实例化NSDecimalNumber的正确方法

我正在寻找从双或短实例化NSDecimalNumber的最佳方法。 有以下NSNumber类和实例方法… +NSNumber numberWithFloat +NSNumber numberWithDouble -NSNumber initWithFloat -NSNumber initWithDouble 但是这些似乎返回NSNumber。 另一方面,NSDecimalNumber定义了以下内容: +NSDecimalNumber decimalNumberWithMantissa:exponent:isNegative: +NSDecimalNumber decimalNumberWithDecimal: 这里有几种可能性。 如果将NSDecimalNumber设置为上面的NSNumber便利方法的返回值,则Xcode会生成警告。 将感激最清洁和正确的方式去input…

数据源和委托有什么区别?

我有一个与Cocoa框架devise模式有关的基本问题。 委托和数据源有什么区别? 他们两个都可以使用@protocols声明,但是一些类或框架正在使用delegate ,还有一些正在使用datasource 。 从UI/NSTableView我可以理解的是delegate响应UI相关的事件,而datasource纯粹与数据相关。 但是,我不知道Cocoa UI类以外的任何数据源实现。 注意: 我在这个问题中提到的代表并不总是与UI事件有关。 数据源问题已被回答。