2017-07-04 68 views
0

比方說,如果您在帳戶文本字段中輸入內容後按下屏幕底部的按鈕,還需要輸入第二張圖像中的密碼。如何在按下按鈕後修改視圖控制器?

我該怎麼做?我不認爲創建一個新的視圖控制器會很好。那麼,我應該以某種方式修改相同的視圖控制器?

如何在帳戶文本字段下添加新密碼文本字段?

請記住,它們仍然居中。在這種情況下,隱藏和取消隱藏不起作用,我還需要修改更多的東西,而不僅僅是添加文本字段。

enter image description here enter image description here

+0

你需要隱藏文本框第一次......點擊按鈕後,你需要顯示文本框。您還需要以編程方式設置高度限制常量值。 –

+0

我認爲你採取了兩種不同的觀點,並添加了文本框和標籤。在第一次你需要隱藏第一個視圖,並且需要通過編程高度約束的出口來以編程方式將其約束值設置爲0。然後在輸入文本到帳戶文本框並點擊按鈕後,您需要顯示第二個視圖,然後您需要更新該視圖的約束常量值。如果您有任何疑問,請隨時詢問 –

回答

0

首先,創建你需要對他們的一切UIView。在這個例子中,我將只有兩個文本字段,它們都是彩色編碼的。

enter image description here

的視圖需要被水平地和垂直居中,具有寬度和高度。爲稍後更新的高度約束設置識別器。將clip to board設置爲true,以便當我們重新查看視圖的高度時,下面的文本字段將隱藏。視圖的設置會是這樣

enter image description here

對於文本字段,它們必須有一個恆定的填充到頂部。在我的例子中,它們被設置爲水平居中,具有恆定的高度,寬度和填充以opp。

現在,您需要做的就是從代碼中獲取視圖的高度,並設置高度以顯示或隱藏文本字段。

var flag = true 

@IBAction func click(_ sender: Any) { 
    if flag { 
     flag = false 
     let filteredConstraints = theView.constraints.filter { $0.identifier == "viewHeight" } 
     if let heightConstraint = filteredConstraints.first { 
      heightConstraint.constant = 60 
     } 
    } else { 
     flag = true 
     let filteredConstraints = theView.constraints.filter { $0.identifier == "viewHeight" } 
     if let heightConstraint = filteredConstraints.first { 
      heightConstraint.constant = 128 
     } 
    } 
} 

這是在模擬器中運行的代碼。

enter image description here

0

另一種選擇是,你可以在中心做的tableView,你需要創建的tableview高度約束出口,

那麼你就可以保持一個計數器你要多少時間來添加視圖,計數器應是回報在的tableView numberOfRowsInSection, 並且你可以在原型細胞或這種看法使用NIB,那麼只需調整標題標籤的文本,文本框的佔位符和特定小區索引的文本,

,當你增加或減少計數器更新的tableViewç onstraint,例如你有一個單元格高度爲50,在第一種情況下,當你在tableView中的單元格時,可以將tableView高度約束條件的常量設置爲50,單元格爲兩個100時依此類推......

我認爲這是一個簡單的邏輯

相關問題