绘制矩形中可绘制内容的顺序变化

  • 本文关键字:绘制 顺序 变化 uiimage
  • 更新时间 :
  • 英文 :


我已经创建了一个UIView子类,在它的drawRect方法中,我基于NSDictionary的内容绘制UIImage。我的问题是,有时图像的顺序(s)的变化和一个图像出现在另一个图像,这是以前被绘制在第一个图像下面。我的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内容根本没有被排序。当NSDictionary在UIView子类中更新时,它就调用[self setNeedsDisplay]来刷新视图。但是我不明白为什么UIImage的顺序有时会改变。

谢谢Arnieterm

在自定义对象中使用NSSortDescriptor和NSDate类型的附加字段解决了这个问题。基本上NSDictionary的键会被重新排列因为它们是0000 0101 4222等等。上面的解决方案可以保持内容添加到NSDictionary的顺序,而不需要重新排列键的值。谢谢Arnieterm

最新更新