私は iOS コミュニティではまったく新しいので、これはばかげた質問かもしれません。コード内で操作できるサブビューを含むカスタム ビューを作成しようとしています。これが私がしたことです:
- PageView.xib を作成しました
- PageView.m および PageView.h ファイルを作成しました
- PageView.xib > Identity Inspector > Custom Class > Class に「PageView」と入れました
- ラベルを.xibにドラッグしました
コードを含むPageView.hにラベルをコントロール+ドラッグしました
#import <UIKit/UIKit.h> #ifndef LosAngeles_PageView_h #define LosAngeles_PageView_h @interface PageView : UIView @property (weak, nonatomic) IBOutlet UILabel *label; @end #endif
次に、MainViewController で定義した ScrollView でこのビューを使用しようとしました
- (void)viewDidLoad { [super viewDidLoad]; // Get screen dimensions CGRect fullScreenFrame = [[UIScreen mainScreen] bounds]; NSMutableArray *pages = [NSMutableArray array]; // Initialize Views for(int i = 0; i < kNumberOfPages; i++){ // Create new Frame CGRect pageFrame; // Set x offset pageFrame.origin.x = i * fullScreenFrame.size.width; pageFrame.origin.y = 0; pageFrame.size = fullScreenFrame.size; // Get "PageView" nib content NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"PageView" owner:nil options:nil]; // Create view from the nib & set its size UIView *newPage = [nibContents lastObject]; newPage.frame = pageFrame; // Add it into the Array & the ScrollView [pages addObject:newPage]; [mainScrollView addSubview:newPage]; } // Resize the content of the ScrollView (otherwise it doesn't scroll) mainScrollView.contentSize = CGSizeMake(fullScreenFrame.size.width * kNumberOfPages, fullScreenFrame.size.height); }
実行しようとしましたが、エラーが発生しました
'NSUnknownKeyException', reason: '[<NSObject 0x7a7dbb70> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key label.'
私は何を間違っていますか?
追加情報:
- PageView.xib ファイルの所有者は、「アウトレット」に「ラベル <-> ラベル」を表示します (ここでは 1 つだけ)
- ラベル ビューには、「参照アウトレット」に「ラベル <-> ファイルの所有者」が表示されます (ここでも 1 つだけ)。
- 3 つのファイルはすべて、ターゲット メンバーシップでチェックされているプロジェクトを持っています。
- 単にアウトレットを参照しないと、すべてが正常に機能します
- キャッシュやその他の種類のものを消去、削除しようとしました。
お時間をいただきありがとうございます。遠慮なく質問してください。もっと正確に知りたい人がいれば、プロジェクトを Github に載せることができます。
ジュリアン