2011-02-26 89 views
0

我已經創建了自己的自定義視圖,用它自己的頭和主文件和相應的筆尖(的.xib):問題子類的UIView

頭文件

#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 

@interface PointsBarView : UIView 
{ 
    IBOutlet UIView *pointsBarView; 
    IBOutlet UIView *pointsCounterView; 
    IBOutlet UILabel *pointsTotalLabel; 
    UIImageView *handImageView; 
    UIImageView *powerBarOutlineImageView; 
} 

@property (nonatomic, retain) IBOutlet UIView *pointsCounterView; 
@property (nonatomic, retain) IBOutlet UIView *pointsBarView; 
@property (nonatomic, retain) IBOutlet UILabel *pointsTotalLabel; 
@property (nonatomic, retain) IBOutlet UIImageView *handImageView; 
@property (nonatomic, retain) IBOutlet UIImageView *powerBarOutlineImageView; 

@end 

我綜合主要的一切,然後在另一個UIViewController類中,我試圖加載這個視圖。我設置其屬性:

@property (nonatomic, assign) IBOutlet PointsBarView *pointsBarView; 

和AM將像這樣:

NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"PointsBarView" owner:self options:nil]; 
    pointsBarView = [nibViews objectAtIndex: 0];  

    [[self view] addSubview:pointsBarView]; 

如何訪問我的NIB中的那些子視圖?他們是否需要嵌入pointsBarView? (pointsBarView引用了NIB的主視圖,所有其他視圖都在pointsBarView之內)。他們是否應該是NIB的一個獨立部分,我需要撥打addSubview來顯示每個人?

我應該注意的是,如果我不連接PointsBarView中的任何屬性,那麼該視圖將顯示在我的UIViewController類中的代碼中。但我希望能夠與每個視圖進行交互並相應地更改屬性。任何幫助將是偉大的!

回答

1

一般的經驗法則是:如果您從代碼中加載它,則將其連接到代碼中。

相反:

如果您在IB實例,您可以在IB連接出口和動作。

在這裏您正在代碼中加載視圖,因此您必須手動連接它們。

如果你想能夠連接IB的東西在IB添加UIVIew並將子類更改爲PointsBarView。 IB會奇蹟般地讀取PointsBarView.h文件,您應該能夠連接插座,目標和操作。

+0

有沒有這樣的示例源代碼? – 2012-01-30 09:50:39