5

Nib をロードするサブクラス UIButton があります。

@implementation BlaButtonVC

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

@end

そして、このボタンを次のようにビューに追加できます。

// ViewController.m

BlaButtonVC *button = [[BlaButtonVC alloc] initWithFrame:CGRectMake(10, 10, 280, 44)];

button.titleXLabel.text = @"Nyuff";
button.descLabel.text = @"Kukk";

[self.view addSubview:button];

私の問題は、Interface Bulder からそれを行う方法、通常の代わりにこの UIButton サブクラスを使用する方法がわからないことです。

Button Type を Custom に、Custom Class を BlaButtonVC に変更しましたが、まだ十分ではありません。BlaButtonVC initWithFrame を呼び出しますが、ボタンはインターフェイス ビルダーにもシミュレーターにも表示されません。

私は何を逃したのですか?

ここで完全なサンプルを見つけることができます:
https://www.dropbox.com/s/ioucpb6jn6nr0hs/blabla1.zip

4

2 に答える 2

6

から初期化すると、 の代わりにStoryBoardメソッドが呼び出されます。それを除けば、すべてが正しいです。initWithCoder:initWithFrame:

于 2012-12-09T09:35:04.540 に答える
0

Interface Builderではサブビューをに追加できないUIButtonので、ここにいくつかのアイデアがあります:

  1. コードでそれを行います。
  2. ラベルと画像の下にボタンを配置して、タッチを受けて期待どおりに機能するようにします。
  3. セルで使用UITableViewします(これは、達成しようとしていることのように見えます)。
  4. でカスタムUIViewを使用しUITapGestureRecognizerます。
于 2012-12-09T12:52:58.603 に答える