2013-05-17 72 views
0

我正在使用相同大小的多個UIViews的應用程序,使用相同的兩個標籤(雖然標籤中使用了不同的文本),我想我應該在這裏使用一些抽象,一個內置標籤的UIView子類。UIView的子類有兩個標籤

我需要該類在該視圖中的相同位置創建具有相同大小和兩個標籤的視圖。如果我可以圍繞視圖的角點加分。

我該怎麼做呢?

回答

1

分階段進行。首先創建您自己的定製UIView類。也許設置背景顏色,以便設置它。更新您的代碼以使用此自定義視圖。

一旦完成並正常工作,請進入下一級。讓自定義視圖創建兩個標籤並將其添加到自己。從標籤中的硬編碼文本開始。玩弄正確的大小和位置。這可以通過適當的框架大小和autoresizingMask值來完成,或者您可以覆蓋layoutSubviews方法來手動定位和調整標籤的大小。

一旦工作,更新類以提供允許此類的用戶設置兩個標籤的文本的屬性或方法。

最後,設置視圖的圖層,使其使用圓角和邊框。

把這樣的問題分解成小的步驟可以使你的每一點工作。不要試圖一次編碼,然後嘗試找出爲什麼它不起作用。

如果您遇到困難,這也可以讓您提出更詳細的問題。或者更好的是,它縮小了你的焦點,所以你可以閱讀文檔並搜索處理這一個細節的相關樣本,而不是整個問題。

1

我在幾個地方重複使用視圖時所做的操作我創建了一個帶有.xib文件的自定義UIView(使用.xib文件設置UI非常簡單),並且創建了一個加載方法筆尖並創建該類的新實例。我公司還提供額外的設置方法,所以你的情況我會創造這樣的:

  1. 的UIView的子類與的.xib文件,我會在需要的位置添加兩個標籤。
  2. 創建@propertie(nonatomic, weak) IBOutlet UILabel *fitstLabel;,另一個用於第二個標籤。當您鏈接的網點(小心(它們鏈接到視圖而不是文件的所有者)
  3. 創建+(YourViewName*)instantiateViews;方法或任何你想將它命名,並在執行這樣做:

    +(YourViewName *) instatiateViews { 的NSArray *意見= [[一個NSBundle mainBundle] loadNibNamed:@ 「TheXibFileName」 老闆:無選項:無]; 回報[觀點objectAtIndex:0]; }

  4. 添加其他的設置方法,以滿足您的需求。

對於您的觀點的圓角,你必須#import <QuartzCore/QuartzCore.h>,你可以創建這樣的方法:

-(void)setViewsRoundedCornersWithCornerRadius:(CGFloat)radius { 
    self.layer.cornerRadius = radius; 
} 

而現在,當你想這個自定義的一個新實例查看您只需要來電:

YourViewName *customView = [YourViewName instantiateViews]; 

之後,您可以調用所有的設置方法。