2012-02-29 129 views
2

我想知道創建視圖的最佳方法是什麼,例如以下link左側的視圖?iOS 5創建自定義視圖

我知道如何製作使用故事板中模板的應用程序,但在創建自定義視圖時卻失去了指導原則。它是否都在運行時使用代碼創建?我需要爲每個部分添加一個子視圖(禮物,生日,...)到我的主視圖嗎?任何創建這種觀點的一般方法都是值得讚賞的。

example interface

回答

6

在頂層,它看起來像他們有一個UIToolbarUITableViewUIScrollView。他們在工具欄中使用了一些自定義圖形;可能他們已經實現了自己的工具欄類。

表視圖可能使用自定義UITableViewCell子類。它使用可變高度的行(通過在委託中定義tableView:heightForRowAtIndexPath:方法)。他們可能只是使用滾動視圖而不是表格視圖,但我認爲這是本次討論的滾動視圖。

每個單元格似乎至少有三個子視圖:一個繪製單元格的標題欄,一個繪製單元格的內容,並在內容下繪製頁面點。

單元格的內容部分看起來像是一個滾動視圖,有些子視圖可以繪製圖像(UIImageView)和標籤(UILabel)。對於不同的表格視圖單元,滾動視圖的子視圖是完全不同的。

您可以使用筆尖佈局這樣的界面。我可能會使用四個筆尖:一個用於工具欄和桌子視圖的頂層,一個用於桌子視圖單元的筆尖,一個用於禮物佈局的筆尖(其大於UIImageView),一個筆尖用於人物/日期 佈局(其中UIImageView在三個UILabel s的左側)。

您需要在代碼中設置一些屬性。例如,假設您有一個筆尖用於表格視圖單元格的整體佈局。它可能有這樣的視圖層次:

UITableViewCell (or subclass) 
    UIView to provide the colored stripe across the top 
     UIImageView for the icon 
     UILabel for the title (「Browse Gifts」, 「Birthdays」, etc.) 
     UIButton for the disclosure indicator 
    UIView to provide the white background with shadow 
     UIScrollView to hold the main content of the cell 
     UIPageControl 

當加載此筆尖使用您的「瀏覽禮品」細胞,你需要設置白色背景視圖的層的陰影屬性,因爲你不能在筆尖做那個。您需要在適當的視圖上設置條紋的顏色,圖標和單元格的標題文本。您需要將內容添加到滾動視圖(可能需要爲每個內容項目加載一個筆尖)。您需要設置頁面控件上的頁面數量。

+0

感謝您的完整解釋。我不知道這些單獨的部分實際上是表 – 2012-02-29 09:34:52

+0

你有沒有可能知道什麼是最好的方法來參考? 有人可能會說我需要一個主視圖和三個具有一行/單元的通用靜態表。 有人可能會說最好的方法是用橫幅和容器創建自定義視圖並動態添加它。我很新,所以任何幫助或引用表示讚賞。在iOS 5的自定義視圖的最佳方法中找不到任何具體內容 – 2012-03-02 06:37:21