Как вы обновляете вторичный вид? - PullRequest
0 голосов
/ 10 мая 2010

Возможно, есть лучший способ настроить это, так что я открыт для предложений.

Но вот что я делаю. У меня есть основной UIView. Кроме того, у меня есть UIImageView и другой UIView. Когда изменяется UIImageView, я хочу изменить второй UIView. Так что у меня есть класс для него, и тип объекта IB установлен на класс. В .m этого класса есть метод drawRect, который рисует некоторые прямоугольники. Также в .m есть свойство NSMutableArray, которое синтезируется. Я создал экземпляр этого класса в контроллере основного представления.

Проблема: несмотря на то, что drawRect работает нормально, когда приложение запускается (как отслеживается в отладчике), когда изменяется UIImageView, я вызываю «setNeedsDisplay» для переменной экземпляра второго представления после обновления @synthesize ' d массив, но drawRect не вызывается.

Я думаю, что это связано с примерами. Я не думаю, что многопоточность будет проблемой здесь. Я просто хочу нарисовать в отдельной области экрана на основе изображения, которое также отображается.

1 Ответ

0 голосов
/ 11 мая 2010

ОК, для тех, кто видит это и сталкивается с подобной проблемой ...

Это действительно была проблема «экземпляра». Я создал вторичный UIView в IB. Я думаю, потому что я установил соединение там, код запускался нормально при запуске.

Исправлено - программно создать подпредставление и добавить его в основной вид. Таким образом, был только один экземпляр. Обновление переменной массива @ synthesize'd и последующие вызовы drawRect (через setNeedsDisplay) перешли к одному экземпляру вторичного представления, которое я добавил как подпредставление для основного. Проблема решена.

...