0

このコードを使用して、すべてのボタンを独自のフォントでカスタマイズしたい:

// Custom fonts for button with tag
for (UIButton *customButton in [[self view] subviews]) {
    if (customButton.tag == 1) {
        customButton.titleLabel.font = [UIFont fontWithName:@"OpenSans-Regular" size:14];
    }
}

しかし、デバッガーコンソールに次のエラーメッセージが表示されました:

2013-09-21 00:33:33.160 Test[794:907] -[UILabel titleLabel]: unrecognized selector sent to instance 0x1dda8d80
2013-09-21 00:33:33.165 Test[794:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILabel titleLabel]: unrecognized selector sent to instance 0x1dda8d80'

私は何を間違えましたか?XCode 4.6.3 を使用し、iOS6 をターゲットにしています。ありがとうございました...

4

4 に答える 4

1

つまり、customButton はボタンではなく、UILabel です。UILabel に titleLabel がありません。これが、このエラーが発生した理由です。.tag == 1 であり、そのクラスが UIButton であるかどうかを確認します。そうであれば、あなたがしたように、フォントを変更することができます。

于 2013-09-20T17:44:30.213 に答える
1

この質問はすでに尋ねられているので、別のスレッドからの回答を引用します。

" IBOutletCollection を使用する場合、これは直接的である必要があります。

@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons;

ボタンをこのアウトレット コレクションに接続し、後で次を使用して 1 回のショットでフォントを変更します。

[self setValue:[UIFont fontWithName:@"Helvetica" size:30] forKeyPath:@"buttons.font"];

"

これにより、IBOutletCollection に接続されているすべてのボタンのフォントが変更されます。

于 2013-09-20T17:44:35.550 に答える
0

これを試して

[button.titleLabel setFont:[UIFont boldSystemFontOfSize:13]];
于 2015-09-02T09:39:49.647 に答える