0

私は iOS コミュニティではまったく新しいので、これはばかげた質問かもしれません。コード内で操作できるサブビューを含むカスタム ビューを作成しようとしています。これが私がしたことです:

  1. PageView.xib を作成しました
  2. PageView.m および PageView.h ファイルを作成しました
  3. PageView.xib > Identity Inspector > Custom Class > Class に「PageView」と入れました
  4. ラベルを.xibにドラッグしました
  5. コードを含む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
    
  6. 次に、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);
    }
    
  7. 実行しようとしましたが、エラーが発生しました

     'NSUnknownKeyException', reason: '[<NSObject 0x7a7dbb70>
     setValue:forUndefinedKey:]: this class is not key value 
     coding-compliant for the key label.'
    

私は何を間違っていますか?

追加情報:

  • PageView.xib ファイルの所有者は、「アウトレット」に「ラベル <-> ラベル」を表示します (ここでは 1 つだけ)
  • ラベル ビューには、「参照アウトレット」に「ラベル <-> ファイルの所有者」が表示されます (ここでも 1 つだけ)。
  • 3 つのファイルはすべて、ターゲット メンバーシップでチェックされているプロジェクトを持っています。
  • 単にアウトレットを参照しないと、すべてが正常に機能します
  • キャッシュやその他の種類のものを消去、削除しようとしました。

お時間をいただきありがとうございます。遠慮なく質問してください。もっと正確に知りたい人がいれば、プロジェクトを Github に載せることができます。

ジュリアン

4

1 に答える 1