как добавить элементы управления между элементами управления в быстрой форме ios

Это представление моей страницы по умолчанию: Первый просмотр

Если пользователь выбирает пол как «Мужской», мне нужно добавить еще одно поле между Полом и Возрастом, например: после мужского выбора

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

Как это сделать в IOS swift, если я добавлю текстовое представление между ними, какие шаги мне нужно выполнить при автоматической компоновке?


person vimal prakash    schedule 21.08.2015    source источник
comment
как вы создали вышеуказанные элементы управления? В TableView или в UIView?   -  person Chetan Prajapati    schedule 21.08.2015
comment
@ChetanPrajapati, в UIVIew   -  person vimal prakash    schedule 21.08.2015
comment
Чем с авторазметкой это проще. Смотри мой ответ   -  person Mihir Mehta    schedule 21.08.2015
comment
У меня есть для него одна библиотека, но она находится в Objective-C, если вы знаете какую-либо подобную библиотеку для Swift, напишите здесь. github.com/ xmartlabs/   -  person vimal prakash    schedule 21.08.2015
comment
Я хочу что-то вроде Stack Views для ios9   -  person vimal prakash    schedule 21.08.2015


Ответы (5)


Если вы поместите свои текстовые поля в ячейку tableview, вы можете добавить/скрыть нужную ячейку, просто вставив ее в источник и удалив из источника.

person Usama    schedule 21.08.2015
comment
это позаботится о повороте экрана и автоматическом изменении размера? Мне нужен простой способ сделать это. если у вас есть какая-либо ссылка по этому поводу, пожалуйста, разместите ее здесь. заранее спасибо. - person vimal prakash; 21.08.2015

Мне такие формы не понравились, выглядит не «родно». Чтобы реализовать это, вы можете создать динамическую таблицу, и когда пользователь нажимает на ячейку, вы можете вставлять или удалять лишние строки в определенной позиции, и даже вы можете использовать одну из собственных анимаций:

[self.models removeObjectAtIndex:indexPath.row];
[self syncModel];
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];

Другой вариант - создать статическую таблицу и программно показать и скрыть ячейки.

person CarlosGz    schedule 21.08.2015

Согласно вашему комментарию, вы используете UIView.

So,

  1. Когда вы меняете пол, увеличивайте высоту UIView на (высота textControl + пробел ч/б 2 элемента управления)

  2. Измените центр всех элементов управления после Gender Control (только положение Y) на (высота textControl + пробел ч/б 2 элемента управления) [Для всех элементов управления]

  3. Создать / (скрыть / показать) Mobile Control и установить для свойства Center значение после Gender Control (высота + зазор ч / б 2 элемента управления)

Сделайте вышеуказанную задачу в uiview.animation, чтобы она выглядела красиво и менялась каждый раз.

person Chetan Prajapati    schedule 21.08.2015
comment
спасибо за ответ, мне нужен правильный способ сделать это, этот способ очень сложен для меня, в случае более динамичных элементов управления на странице. как правильно делать эти приложения с динамической формой? ответы отсюда, которые я узнаю, для этого мне нужно использовать табличное представление. но мне нужен пример для этого. если возможно, пожалуйста, опубликуйте ссылку или пример. - person vimal prakash; 21.08.2015
comment

Создайте 2 подвида в вашем UIView одном представлении, расположенном рядом с текстовым представлением пола, и установите его высоту «0», чтобы кадр первого представления был (20 100 150,0), добавьте мобильное текстовое представление, а во втором представлении добавьте возраст и блабла и т. д.

когда пол выбран мужчиной, измените кадр первого вида, чтобы он мог быть (20,100,150,50), а также измените «Y» для второго вида.

person Rinju Jain    schedule 21.08.2015
comment
привет @Rinju Jain, это завершено, чтобы обновить все элементы управления, когда у меня будет больше элементов управления и динамических элементов управления, этот динамический элемент управления зависит от другого динамического элемента управления. - person vimal prakash; 21.08.2015
comment
в вашем первом представлении динамически добавляйте текстовые поля, поэтому высота автоматически увеличивается. - person Rinju Jain; 21.08.2015

Вы можете добиться этого, используя autolayout. У меня есть то же самое в одном из моих проектов.

Вам необходимо выполнить следующие

1> Когда вы создаете свое представление с помощью xib или кода, создайте также текстовое поле для мобильных устройств.
2> задайте для этого ограничения высоты текстового файла значение 0
3> скройте это поле 4> создайте IBOutlet для этого ограничения высоты 0 для мобильных устройств. textfiled.
5> При выборе пола измените это ограничение высоты с 0 на DEFAULT_HEIGHT вашего textfiled.
6> Все остальные текстовые поля будут автоматически скорректированы

Вот мой пример кода

[self.dropOffLocationHeightConstraint setConstant:64.0];
[self.dropOffLocationView setHidden:FALSE];
[self.view layoutIfNeeded]; 
person Mihir Mehta    schedule 21.08.2015