drawRect中可绘制内容的顺序更改

时间:2011-09-10 10:32:57

标签: uiimage

我创建了一个UIView子类,其drawRect方法我根据NSDictionary的内容绘制UIImage。我的问题是,有时图像的顺序会改变,一个图像会出现在另一个先前在第一个图像下面绘制的图像上。我的drawRect代码如下所示

NSArray* arr = [myDictionary allValues]; for (MyObject* obj in arr) { NSString* imageName = obj.imageName; CGRect imageRect = CGRectZero; imageRect.origin = obj.origin; imageRect.size = obj.size;
UIImage* img = [ UIImage imageWithContentsOfFile:imageName]; [img drawInRect:imageRect]; }

NSDictionary内容根本没有排序。每当在UIView子类中更新NSDictionary时,我只需调用[self setNeedsDisplay]来刷新视图。 但是我无法理解为什么有时会改变UIImage的顺序。

由于 Arnieterm

1 个答案:

答案 0 :(得分:0)

在自定义对象中使用NSSortDescriptor以及NSDate类型的附加字段解决了该问题。基本上NSDictionary的键被重新安排,因为他们是善良的“0000”,“0101”,“4222”等。 上述解决方案使得能够保持内容被添加到NSDictionary的顺序,而无需重新安排密钥的值。 谢谢 Arnieterm