2

これは別の「私は混乱している質問です」です。そこで、カスタムビューをViewControllerに取り込む作業を行っています。エラーの正確な手順の概要を説明します。

  1. シングルビューアプリケーションプロジェクトを作成する
  2. [ファイル]->[新規]->[ユーザーインターフェイス]->[表示]からNibファイルを作成します。それをtheNIB.xibと呼びます。簡単なラベルを追加して、確実に読み込まれるようにします。
  3. 次のコードを追加します。

    UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"theNIB" owner:self options:nil] objectAtIndex:0];
    view.frame=CGRectMake(10.0f,10.0f,100.0f,100.0f);
    view.backgroundColor=[UIColor orangeColor];
    [self.view addSubview:view];
    

これは機能します。

ここで、このペン先をUICustomViewに接続して、[ファイル]->[新規]->[UIView]を使用してArcViewを作成します。

'4。IBでは、NIBをArcViewに接続する必要があるため、プレースホルダーでファイルの所有者を強調表示し、カスタムクラスでAcrViewを選択します。

ここに画像の説明を入力してください

「5.」次に、メインビューを選択し、カスタムクラスでArcViewに設定します。

ここに画像の説明を入力してください

次のステップが何であるか、または4または5が必要かどうか(両方/どちらでもない)について私は途方に暮れていますか?Interface Builderのメインビューを表示するために、ArcViewでアウトレット参照を作成しようとしていますか?アシスタントエディタでビューからヘッダーファイルにAltキーを押しながらドラッグできますか(現在はできません)?

事前にt​​hx

**編集1**

arcViewが設定されたファイルの所有者は次のとおりです。

ここに画像の説明を入力してください

arcViewが設定されていないオブジェクトを表示します。

ここに画像の説明を入力してください

4

2 に答える 2

1

次のように、親クラスの @interface セクションで IBOutlet @property を定義します。

@property (weak, nonatomic) IBOutlet ArcView *arcView

次に、Interface Builder に移動し、File's Owner を右クリックします。黒い HUD ウィンドウに「arcView」が表示されたら、そのアイテムから XIB のビューにマウスをドラッグします。

これで、arcview コントロールのプロパティが作成され、UIButton、UILabel などのコントロールと同じように使用できます。

于 2013-03-01T06:14:20.970 に答える
1

ファイルの所有者 == UIView サブクラスを設定して、アウトレットをそれに接続できるようにします。また、ペン先でペイントされた UIView のクラスを同じサブクラスに設定する必要があります。これは、その UIView サブクラスのインスタンスであるためです。

つまり、次の手順に従います。

  1. CustomView という UIView サブクラスを作成する
  2. UIView xib を作成します 新しいファイル -> ユーザー インターフェイス -> ビュー
  3. ファイルの所有者を CustomView に変更します
  4. ビューのクラスを CustomView に変更します
  5. 必要に応じてサブビューを追加し、それらをアウトレットとしてファイル所有者 (CustomView) に接続します

コードが次のように言っているため、クラッシュが発生しています。

UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"theNIB" owner:self options:nil] objectAtIndex:0];

しかし、それowner:selfはこのコードが実行されているView Controllerです。ビューのサブクラスを nib の所有者にしたい。

修正するには、次のように、UIView サブクラスにペン先からそれ自体を初期化するジョブを与えます。

CustomView.h

@interface CustomView : UIView

- (id)initFromNib;

@end

CustomView.m

#import "CustomView.h"

@interface CustomView ()
// connect this in the XIB to file's owner that you've set to this CustomView class
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
@end

@implementation CustomView

- (id)initFromNib
{
    self = [[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil] objectAtIndex:0];

    if (self) {
        // prove you can set properties on your outlets
        self.myLabel.text = @"this is good";
    }
    return self;
}

説明したように、このようなものだけを含む小さなプロジェクトを構築しました。正常に動作します。見たいかどうか教えてください。匿名の郵便番号を送る方法を見つけます。

于 2013-03-01T07:31:02.373 に答える