我有一个IKImageBrowser设置似乎运行良好。我已将其设置为允许重新排序并将动画设置为YES(在我的awakeFromNib中),但是每当我选择并尝试重新排序图像时,我都会遇到奇怪的行为:
1)他们大部分时间都没有重新排序 2)如果他们这样做他们没有动画 3)有时图像会相互着陆,如果我向后滚动它们又回到了它们开始的位置。
如果我突出显示图像并将其删除,它会按预期动画并消失...
这是Core Animation的问题吗?我是否需要在界面构建器中向对象添加核心动画层?我按照Apple的这个教程获得了这些结果:http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/ImageKitProgrammingGuide/ImageBrowser/ImageBrowser.html#//apple_ref/doc/uid/TP40004907-CH5-SW1
以下是相关代码:
- (BOOL) imageBrowser:(IKImageBrowserView *) aBrowser moveItemsAtIndexes: (NSIndexSet *)indexes toIndex:(NSUInteger)destinationIndex{
int index;
NSMutableArray *temporaryArray;
temporaryArray = [[[NSMutableArray alloc] init] autorelease];
for(index=[indexes lastIndex]; index != NSNotFound;
index = [indexes indexLessThanIndex:index])
{
if (index < destinationIndex)
destinationIndex --;
id obj = [mImages objectAtIndex:index];
[temporaryArray addObject:obj];
[mImages removeObjectAtIndex:index];
}
// Insert at the new destination
int n = [temporaryArray count];
for(index=0; index < n; index++){
[mImages insertObject:[temporaryArray objectAtIndex:index]
atIndex:destinationIndex];
}
return YES;
}
有趣的是,这一行会发出警告
for(index=[indexes lastIndex]; index != NSNotFound;
由于比较总是如此 有限的数据类型范围
答案 0 :(得分:0)
如上所述,NSGod将int index
更改为NSUInteger index
解决了问题