2

nib を使用して UIView をサブクラス化しようとしています。次のコードを使用します。


- (void)awakeFromNib
{
    [super awakeFromNib];
    NSArray *v = [[NSBundle mainBundle] loadNibNamed:@"Qus_Scale1to7View" owner:self options:nil];
    [self addSubview:[v objectAtIndex:0]];
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
        NSArray *v = [[NSBundle mainBundle] loadNibNamed:@"Qus_Scale1to7View" owner:self options:nil];
        [self addSubview:[v objectAtIndex:0]];
    }
    return self;
}

これにより、オブジェクトが正しく作成され、ビューも表示されます。オブジェクトがペン先から読み込まれると、デリゲートは即座に null になり、それに値を割り当てようとしても無視されます。

その理由がわかる方いらっしゃいますか?

前もって感謝します。

4

2 に答える 2

0

Xib を使用してカスタム UIView を作成し、それにプロパティを追加できます。次に、クラスを xib にリンクし、プロパティを IB にリンクします。

または、使用できるのは

NSArray *v = [[NSBundle mainBundle] loadNibNamed:@"Qus_Scale1to7View" owner:self options:nil];

UIView *view = [v objectAtIndex:0];

viewWithTag:メソッドを使用してオブジェクトの値を設定します。

UILabel *label = (UILabel *)[view viewWithTag:yourTag];

これが役立つかどうか教えてください。

于 2013-07-05T11:41:39.440 に答える