2016-01-11 19 views
1

我正在做一個IOS應用程序,其中主佈局是一個UITableView,並且單元格是完全動態的並從服務器加載。每個tableview項目是不同的佈局。如何在swift中創建動態視圖?

例如,讓我們取的tableview的第一個項目:

服務器告訴它應該有一個標籤,2個按鈕和一個文本框,它應該通過代碼來創建。我想出瞭如何自己創建這些元素,問題是我如何定位它們?

理想情況下,我想添加每個佈局項目下的前一個。而tableviewcell應該包裝這些,根據意見成長或崩潰。

我對iOS/Swift相當新穎。有什麼方法可以輕鬆實現嗎?在android中,我只是使用了一個線性佈局,並逐個添加了視圖。 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. 給予適當的約束,你的表視圖單元格子視圖,(即所有的 你的子視圖應該互相連接,最頂層的 子視圖應該有頂層空間約束,最底層的子視圖應該有底層空間約束)。

    1. 指定您的表格視圖的estimatedRowHeight。

    2. 設置你的表視圖的rowHeight時至UITableViewAutomaticDimension

對於上述步驟2-3的步驟,只需添加以下代碼在你的viewDidLoad -

tableView.estimatedRowHeight = 44.0 
tableView.rowHeight = UITableViewAutomaticDimension 

對於理解自行篩選細胞您可以按照此鏈接 http://www.appcoda.com/self-sizing-cells/