簡體   English   中英

子類UIView有兩個標簽

[英]Subclass UIView to have two labels

我正在開發一個使用相同大小的UIViews的應用程序,使用相同的兩個標簽(雖然標簽中有不同的文本),我想我應該在這里使用一些抽象並制作一個內置標簽的UIView子類。

我需要該類創建相同大小的視圖,並在該視圖中的同一位置使用兩個標簽。 如果我可以圍繞視圖的角落加分。

我該怎么做呢?

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

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

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

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

將這樣的問題分解成小步驟可以使每個小工作都能正常工作。 不要試圖一次編寫所有代碼,然后試着弄清楚它為什么不起作用。

如果您遇到問題,這也可以讓您在SO上提出更詳細的問題。 或者更好的是,它縮小了您的注意力,因此您可以閱讀文檔並搜索處理該詳細信息而不是整個問題的相關示例。

當我必須在幾個地方重用一個視圖時我會做什么我創建一個帶有.xib文件的自定義UIView(使用.xib文件設置UI非常容易)我創建了一個加載nib並創建的方法該類的新實例。 我還為它提供了額外的設置方法,所以在你的情況下我會創建類似的東西:

  1. UIView的一個子類,帶有.xib文件,我會在所需位置添加兩個標簽。
  2. 創建@propertie(nonatomic, weak) IBOutlet UILabel *fitstLabel; 一個是第二個標簽。 (鏈接插座時要小心(將它們鏈接到視圖而不是文件的所有者)
  3. 創建一個+(YourViewName*)instantiateViews; 方法或任何你想要調用它的方法,並在實現中做類似的事情:

    +(YourViewName *)instatiateViews {NSArray * views = [[NSBundle mainBundle] loadNibNamed:@“TheXibFileName”owner:nil option:nil]; return [views objectAtIndex:0]; }

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

對於視圖的圓角,您必須#import <QuartzCore/QuartzCore.h> ,您可以創建一個方法,如:

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

現在,當您想要這個自定義視圖的新實例時,您只需要調用:

YourViewName *customView = [YourViewName instantiateViews];

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM