Порядок изменения содержимого для рисования в drawRect - PullRequest
0 голосов
/ 10 сентября 2011

Я создал подкласс UIView, в методе которого drawRect я рисую UIImage на основе содержимого NSDictionary.Моя проблема в том, что иногда порядок изображений меняется, и одно изображение появляется поверх другого изображения, которое ранее было нарисовано ниже первого изображения.Мой код 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;<br> UIImage* img = [ UIImage imageWithContentsOfFile:imageName]; [img drawInRect:imageRect]; }

Содержимое NSDictionary не сортируется вообще.Всякий раз, когда NSDictionary обновляется в подклассе UIView, я просто вызываю [self setNeedsDisplay], чтобы обновить представление.Но я не могу понять, почему иногда меняется порядок UIImage.

Спасибо Arnieterm

1 Ответ

0 голосов
/ 04 октября 2011

Использование NSSortDescriptor вместе с дополнительным полем типа NSDate в пользовательском объекте решило проблему.В основном ключи NSDictionary переупорядочиваются, поскольку они имеют вид «0000», «0101», «4222» и т. Д. Приведенное выше решение позволяет сохранять порядок, в котором содержимое добавляется в NSDictionary без перестановки, какой быЗначения ключей есть.Спасибо Арниетерм

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...