2016-01-11 2 views
1

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

Например, давайте возьмем первый элемент из Tableview:

Сервер говорит он должен иметь этикетку, 2 кнопки и текстовое поле, он должен быть создан с помощью кода. Я понял, как создавать эти элементы сами, проблема в том, как я их позиционирую?

В идеале я хотел бы добавить каждый элемент макета под предыдущий. И tableviewcell должен обертывать их, расти или рушиться в соответствии с представлениями.

Я довольно новичок в IOS/Swift. Есть ли способ сделать это легко? В android я просто использовал linearlayout и добавил взгляды один за другим. Есть ли у IOS что-то в этом роде? Или мне нужно вручную устанавливать высоты, ширину и координаты всех элементов?

Заранее спасибо.

Вот код:

if let Actions = AppData["Forms"][0]["AvailableActions"].array{ 
       for var i = 0 ; i < Actions.count ; ++i { 
        if Actions[i].int == 1{ 
         let actionButton1 = UIButton(frame: CGRectMake(0, 0, 96, 30)) 
         actionButton1.setTitle("View", forState: .Normal) 
         actionButton1.setTitleColor(UIColor.redColor(), forState: .Normal) 
         cell.actionsLayout.addSubview(actionButton1) 
        } 
       } 
      } 
+0

Является ли ваше приложение iOS 9 или выше? Я считаю, что вы можете использовать UIStackView, если это так, хотя я еще не использовал его сам – Simon

ответ

1

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

  1. Дайте соответствующие ограничения на мобильном подобозрение просмотреть таблицу, (т.е. все ваши подфундации должны быть связаны друг с другом, а верхняя часть . subview должен иметь ограничения верхнего пространства, а в нижнем представлении должны быть ограничения нижнего пространства).

    1. Укажите примерное значение RowHeight вашего табличного вида.

    2. Установите RowHeight вашего представления таблицы в UITableViewAutomaticDimension

Для ступенчатых 2-3 шагов, упомянутых выше, просто добавьте следующий код в viewDidLoad -

tableView.estimatedRowHeight = 44.0 
tableView.rowHeight = UITableViewAutomaticDimension 

Для понимания из ячейки для самостоятельной калибровки вы можете следовать этой ссылке http://www.appcoda.com/self-sizing-cells/

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