2012-01-31 62 views
0

我已創建一個UIVeiw類和的.xib。在這個觀點的.xib我有它的一套與400x200尺寸以自由形式和我有相同名稱分配給我的自定義類:的iOS5添加和manipulting一個UIView類

故事板:blogView 類文件:blogView.h & blogView.m

內的的.xib我添加了一個標籤和一個文本字段和.h文件等內掛起來變量(請參見下面的代碼)。

blogCont.h

#import <UIKit/UIKit.h> 

    @interface blogCont : UIView 
    @property (strong, nonatomic) IBOutlet UILabel *lbBlogDate; 
    @property (strong, nonatomic) IBOutlet UITextView *txtBlogTitle; 

    @end 

blogCont.m

#import "newsStoryView.h" 

    @implementation blogCont 
    @synthesize lbBlogDate; 
    @synthesize txtBlogTitle; 

    - (id)initWithFrame:(CGRect)frame 
    { 
     self = [super initWithFrame:frame]; 
     if (self) { 
      // Initialization code place a log to see if it loads 
      NSLog(@"View Loaded"); 


     } 
     return self; 
    } 
    @end 
在我的主viewController.m文件我已經添加以下代碼初始化這個視圖類

現在,我已經加了背景顏色看是否加載。

viewController.m

UIView *blogCont = [[blogView alloc] init]; 
blogCont.backgroundColor = [UIColor purpleColor]; 
[subview addSubview:blogCont]; 

現在,當我運行這一點,一切運作良好,但我沒有看到紫色的背景,它看起來好像視圖不加載,但在日誌中我看到的NSLog消息我有這種說法的NSLog內(@」查看加載「);所以它似乎啓動了這一點,但我不能爲我的生活得到這個顯示?

現在,如果我稍微修改代碼,我的主視圖Controller.m或者FIEL到:

CGRect blogFrame; 
blogFrame.origin.x = 20; 
blogFrame.origin.y = 20; 
blogFrame.size = CGRectMake(400,200);; 


newsStoryView *blogCont = [[blogView alloc] blogFrame]; 
blogCont.backgroundColor = [UIColor purpleColor]; 
[subview addSubview:blogCont]; 

然後,我讓我的視圖中顯示一個漂亮的紫色的盒子,所以這說明了,當我設置的幀大小和用'blogFrame'初始化視圖,但我認爲所有這些都會在.xib設置中設置,所以不需要這樣做?

那麼如何創建這個外部視圖類並將其分配到另一個視圖然後處理它的數據,因爲使用blogCont.lbBlogDate.text訪問.xib中的標籤似乎並不工作,因爲我無法查看它,所以我無法確認。

我在做什麼錯了?

感謝

回答

0

看來我幾乎回答了我自己的問題,然後做:

我沒有設置我的單獨的類視圖中的尺寸,我要求一個大小時初始化它:

- (id)initWithFrame:(CGRect)frame 

這是要求的大小

所以我可以做到以上幾點:

- (id)init 
{ 
    self = [super initWithFrame:CGRectMake(0, 0, 478, 220)]; 
    .... rest of code 

設置視圖負載內的大小。

但我也可以設置它,當我在我的主視圖控制器初始化它如下:

newsStoryView *blogCont = [[blogView alloc] initWithFrame:CGRectMake(0, 0, 400, 200)]; 

這是更好,因爲我可以控制每一個位置。希望這有助於任何人