Xcode 4.3.3を使用すると、カスタムUIViewクラスのアウトレットをInterface Builderで作成したオブジェクトと接続する方法がわかりません。Interface BuilderはカスタムUIViewクラスへの接続を許可しません。
ViewControllerには、ビューにグループ化しようとしているさまざまなボタン、スライダなどがあります。そこで、IBのViewController内に3つのビューを追加しました。一度に1つのビューのみが表示されます。
これらの3つのビューのそれぞれを処理するカスタムUIViewクラスを派生しました。私のビューコントローラは、各クラスをインスタンス化します。 IBでビューを選択し、アイデンティティ・インスペクタを開き、カスタム・クラスにクラスを設定しました。しかし、私は、ビューからの接続をドラッグしようとすると、またはコンポーネントのコントロールをカスタムビューの.hファイルに接続しようとすると、IBは接続を追加しません。
IBはなく、カスタムビューの.hファイルに、私は親ビューコントローラの.Hにドラッグすることで、アウトレット/アクションを追加することができます。ビューのクラスをカスタムクラスに設定すると、ビューのコンポーネントのアウトレットをView Controllerではなくカスタムクラスにドラッグできます。
この質問は私と同じです:how to connect UIview outlets to a custom subview 2つのソリューション(アウトレットを手動で追加し、IBでビューのクラスを設定する)は、私の動作を変更しませんでした。ここで私は追加のマニュアル店です:
customView3.h
が#import <UIKit/UIKit.h>
@interface customView3 : UIView
@property (retain) IBOutlet customView3 *view3;
@property (retain) IBOutlet UISlider *slider;
@end
customView3.m
#import "customView3.h"
@implementation customView3
@synthesize view3, slider;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
@end
私はここで何をしないのですか?ビューコントローラではなくカスタムUIViewにアウトレットを追加するために何を設定/チェックする必要がありますか?私の経験で
スウェル。だから、私は確かに作成するコントロールを定義することができます、スライダを、手動で、それを私が望む場所に配置します。しかし、私のカスタムクラスの関数にプログラムで(Value Changedのような)アクションを設定する方法はありますか? slider.delegate = myCustomViewを設定しますか? – Thunk
正直、私は知らない。私はInterface Builderが嫌い、まれにしか使用しません。プログラムでアクションを追加するには、 'UIControl'の' addTarget:action:forControlEvents: 'メソッドを使います。 –
* view3と一緒にIBOutletではなく 'self'を使うのはなぜですか? –