2012-05-14 4 views
3

Я пытаюсь создать простую гибкую планировку:IOS гибкие макеты

my layout

Мое приложение имеет UITextView (красный прямоугольник), который будет иметь переменное количество текста в нем. Ниже это UIRoundedRectButton и UILabel.

У меня есть текстовое растяжение, основанное на содержимом внутри уже. Мне было интересно, как я могу достичь гибкой компоновки, чтобы кнопка/метка подталкивалась автоматически, если в тексте есть много контента внутри.

ответ

3
  1. Положите все в другой точке зрения, и установить на ваших автоматическое изменении двух оранжевых взглядов, так что они имеют гибкие верхние поля, и на красном зрении, так что имеет гибкую нижнюю границу. Измените размер своего контейнера, когда ваш текст изменится, чтобы он был достаточно большим, чтобы держать все.

  2. Сделать все это табличным представлением с 2 или более различными типами ячеек. Первая ячейка удерживает текстовое поле, а его высота задается в соответствии с вашей длиной данных. Нижние ячейки затем автоматически опускаются. Если вы используете iOS 5+, этого легко достичь, используя статические представления таблиц и выходы. Вы можете отключить прокрутку, разделители и т. Д., Чтобы сделать его похожим на обычный экран содержимого.

+0

Спасибо за это - я пробовал реализовать ваше первое предложение, но я не могу понять, как это правильно. Вот скриншот, где я попал - http://i.imgur.com/ujhWY.png Что я пропустил? – boz

+0

Лично я бы отправился на номер 2! Не уверенный, что там происходит, кажется, что он прошел повсюду. Возможно, исправление левого и правого полей также, похоже, перешло в одну сторону. – jrturton

+0

Я играл с ним еще немного, и я просто не могу получить вариант 1 для работы. Я думаю, мне придется пойти с номером 2. Спасибо за указатели. – boz

0

его слишком простым в yourViewController метод делегата viewWillAppear метод

Jus поставил сильфона код ....

-(void)viewWillAppear:(BOOL)animated 
{ 
yourTextView.text=yourdata;//here your inserted data ie.. yourdata is string variable 

    yourTextView.frame = CGRectMake(yourTextView.frame.origin.x, yourTextView.frame.origin.y, yourTextView.frame.size.width, yourTextView.contentSize.height); 

float btnscreen = yourTextView.frame.origin.y + yourTextView.contentSize.height + 15; 

yourButton.frame=CGRectMake(yourButton.frame.origin.x, btnscreen, yourButton.frame.size.width, yourButton.frame.size.height); 

float lblscreen = yourButton.frame.origin.y + yourButton.frame.size.height + 10; 


yourLable.frame=CGRectMake(yourLable.frame.origin.x, lblscreen, yourLable.frame.size.width, yourLable.frame.size.height); 
} 

здесь, первый создать свой вид в XIB после в файле .m используйте этот код ..... и да, если ваши контролы выходят за границы, то, пожалуйста, возьмите UIScrollView и поместите эти элементы управления в свой scrollview, а затем используйте этот код, его работа прекрасна ... надеюсь, что это поможет вам ... :)

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