2016-05-16 30 views
0

我想創建多個UIViews,可以使用單個函數進行復制。我有一個被放置在故事板並連接到我的班級有一個IBOutlet一個UIView:如何使用相同的函數創建多個UIViews

@IBOutlet weak var contentView: UIView! 

我有一個加載廈門國際銀行到我UIView功能:

func createView(layoutConstant: CGFloat) { 
     if let customView = NSBundle.mainBundle().loadNibNamed("TestView", owner: self, options: nil).first as? TestView { 
      contentViewTopLayoutConstraint.constant = layoutConstant 
      contentView.addSubview(customView) 
     } 
    } 

現在我想加上他們兩個我的看法,但只有一個顯示出來:

createView(0) 
createView(70) 

任何想法?

+0

創建單獨的func並多次調用它們。 – vikash1307

+0

我認爲你是以錯誤的方式創造你的觀點。你可以嘗試使用'如果讓customView = UINib(nibName:「TestView」,bundle:nil).instantiateWithOwner(nil,options:nil)[0]作爲? TestView'? –

回答

0

我認爲,這兩種觀點都加入,雖然他們碰巧在同一地點,所以看起來只有一條!一個快速和骯髒的方法來驗證,將與該行進行更新createView方法:

contentView.frame.origin.y = layoutConstant 

基本上你contentViewTopLayoutConstraint沒有連接到您正在創建的意見,所以設置其constant值將不會有任何影響。

0

因爲所有這些視圖的幀將具有相同的大小。 Origin(x,y)對於所有視圖都是相同的,因此它們彼此重疊,並且只能看到頂部的一個視圖。

0

在你的代碼示例中,它看起來像只在你放置兩個新視圖的contentView上設置佈局約束。你需要做的是設置佈局約束在你放在裏面的兩個視圖關於他們的超級視圖,即contentView

基本上,將佈局約束添加到customView視圖。

0

其相當簡單..通過創建uiview並將它們添加到數組中並通過使用數組索引定製您的特定視圖來迭代循環。

快樂代碼..

相關問題