Как вы обновляете вторичный вид?

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

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

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

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

1 ответ

Решение

Хорошо, для тех, кто видит это и имеет подобную проблему...

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

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

Другие вопросы по тегам