3

UILabel内に を追加したいUIButton。これが私のコードです:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[self addressSearch] setDelegate:self];
    [[self worldMap] setDelegate:self];

    self.boolPushButtonTapped = YES;
    self.addressSearch.barStyle = 1;

    //Create pushButton
    self.pushButton = [UIButton buttonWithType:UIButtonTypeCustom];
    self.pushButton.frame = CGRectMake(106, 436, 110, 59);

    [self.pushButton setBackgroundImage:[UIImage imageNamed:@"pushButton2.png"] forState:UIControlStateNormal];
    [self.pushButton addTarget:self action:@selector(pushButtonTapped) forControlEvents:UIControlEventTouchUpInside];


    //Label
    self.distanceLabel = [[UILabel alloc] init];

    self.distanceLabel.text = @"test";

    [self.pushButton addSubview:self.distanceLabel];


    [self.view addSubview:self.pushButton];
}

使用しないalloc initとエラーが発生し、使用してもそのラベルのテキストは変更されません。エラー:

*** Assertion failure in -[NSLayoutConstraint constant], /SourceCache/Foundation/Foundation-992/Layout.subproj/NSLayoutConstraint.m:560
2012-10-01 14:01:01.889 RemindMe[1116:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '(null)'

アニメーションがあるので、このボタンの中に追加したいです。

助言がありますか?

4

2 に答える 2

1

これを試すことができます:

[self.pushButton.titleLabel setText: @"anytext"];

更新された回答:

UIButton Class Referenceで述べたように、を使用してタイトルを設定する必要がありますsetTitle:forState:

次に、ボタンに関連付けられたラベル オブジェクトで書式設定を行うことができますtitleLabel

したがって、別の UILabel を追加する必要はありません。

お役に立てれば!

于 2012-10-01T06:40:48.557 に答える
1

UIButtons は多くのコントロールを提供するようになりましたが、カスタム フォントのようなものが可能になる前に、UIButton と UILabel を持つ単純なコントロールを作成しました。UILabel を UIButton の上に小さな 2px 程度のパディングで配置するだけです。

于 2012-10-01T04:36:09.237 に答える