2015-01-17 33 views
0

所以我有一個表格視圖,根據其他一些數據顯示多個點。表格視圖中的每個單元格都包含一個不同的數字,並且需要根據該數字顯示一定數量的點。例如,單元格1對應5個點,單元格2對應3個點,依此類推。由於所有單元格都至少包含一個點,因此我創建了一個包含單個點(稱爲dotView,它是我正在使用的自定義View)的原型單元格。如何在Swift中以編程方式複製視圖?自動佈局如何影響新創建的視圖?

我想基本上重複點數次匹配我需要的數字。

這些點是垂直對齊和定位的,所以我只需要將dotView複製並粘貼到其上方,但將它視爲單獨的視圖,以便我可以訪問其成員而不更改任何其他dotView。

如果成功,我是否需要自己設置自動佈局參數?還是會繼承一些原型值?

+0

有時堆棧視圖將在這裏幫助。 – Fattie

回答

2

你當然可以做到這一點,如果你只是在筆尖(故事板)設計的東西。在Interface Builder中看到的任何視圖都可以重複;只是說重複(或選項拖動)。您將不得不完全配置新的副本。

但是,當應用程序正在運行時,您不能在界面中代碼中魔法地「複製並粘貼」現有視圖。 代碼中的標準方法是在.xib文件中設計自定義視圖。然後,無論何時您需要此視圖的新副本,您都可以加載該筆尖並將其檢索出來。這基本上只是一種製作這個視圖的新的但完全配置的實例(以及它的所有子視圖,筆尖中的設置等)的精心製作方式。然後,您需要手動(即以代碼形式)將新實例化的點視圖插入到需要的任何接口中。定位取決於你,如果它需要約束,你將不得不添加它們。

+0

讓我知道如果有任何不明確。 – matt

+0

感謝堆亞光! –

+0

整個iOS環境的巨大失敗在於沒有「模型」或「預製」的概念。事實上,它確實存在於:表格和集合中的單元格視圖中。這就是人們經常以折磨的方式使用桌子/單元的原因,以便具有「模型」或「預製」的概念。容器視圖幾乎就在那裏,在另一個10年中,Apple的某個人會意識到你應該能夠像任何地方的普通預製一樣使用這些視圖! – Fattie

相關問題