2014-11-18 2 views
0

У меня есть UIScrollView, что я динамически добавляю метки и текстовые поля на основе файла csv. Первоначально на моем представлении установлено фрейм 0, 340, 100, 100. Я вычисляю новый фрейм в моем коде, попробуйте обновить этот размер с помощью кода ниже.UIScrollView не изменяет размер при установкеFrame

[_svFields setScrollEnabled:YES]; 
[_svFields setUserInteractionEnabled:YES]; 
[_svFields setFrame:CGRectMake(frameX, frameY, frameWidth, frameHeight)]; 
[_svFields setContentSize:CGSizeMake(frameWidth, y)]; 

Это правильно добавляет метки и текстовые поля к Scrollview однако сам Scrollview не обновляется до нового кадра, и это все еще находится на 0,340,100,100. Я пробовал это, когда я вызываю [_svFields setNeedsDisplay]; после обновления фрейма и он ничего не делает. Значения, когда я останавливаюсь на setFrame, являются frameX = 0, frameY = 319, frameWidth = 750, frameHeight = 403, y = 2152.

Любая помощь будет отличной.

Спасибо,

Edit: Я использую различные классы размеров в настоящее время таким образом, отключение Autolayout не вариант. Если это единственный способ, спасибо за помощь. Причина, по которой я устанавливал размер в первую очередь, заключалась в том, что эти классы постоянно перезагружают мой кадр UIScrollView до 0,0,0,0 вместо размера, который я им даю, когда я перемещаюсь и изменяю другие объекты в представлении. Есть ли проблема в этой проблеме, о которой все знают?

Редактировать 2: Я нашел обходной путь для этого. Установив setTranslatesAutoresizingMaskIntoContraits в YES для UIScrollView, он не авторизован и не позволяет использовать мои размеры набора. [_svFields setTranslatesAutoresizingMastIntoContraints: YES] перед установкой координат кадра.

ответ

0

Отключить свойство автозапуска для вашего UIViewController.

Смежные вопросы