UIButtonTypeCustom(シェイプ用)タイプのUIButtonを作成したいとします。私はフォントを指定する必要があるので、button.titleLabelを使ってタイトルを割り当てたい。次のコードは動作するはずですが、ラベルは表示されません。iOS:UIButton titleLabel - 何もしませんか?
UIImage *editButtonImage = [UIImage imageNamed: @"editButton.png"];
float width = editButtonImage.size.width;
float height = editButtonImage.size.height;
UIButton *editButton = [UIButton buttonWithType: UIButtonTypeCustom];
editButton.frame = CGRectMake(0, 0, width, height);
[editButton setBackgroundImage: editButtonImage forState: UIControlStateNormal];
editButton.adjustsImageWhenHighlighted = YES;
editButton.titleLabel.text = @"Edit";
editButton.titleLabel.textColor = [UIColor whiteColor];
editButton.titleLabel.textAlignment = UITextAlignmentCenter;
editButton.titleLabel.font = [UIFont fontWithName: @"Helvetica" size: 14];
[self.view addSubview: editButton];
誰もが常にsetTitle:forState:を使用すると言いますが、それはあなたに好きではないフォントを与えます。 titleLabelメソッドは廃止予定ではなく、動作するはずです。
私はこの前に何度も遭遇していましたが、いつもその周りで働いていましたが、本当にそれを理解したいと思います。何か案は?
titleLabelを使用して設定できないものは、実際のテキスト値です。それは私にとってはちょっと変わったようですが、大丈夫です。 – Amagrammer
最初は少し直感的ではありません。見たところでは、ラベルの 'text'プロパティを設定することは' -setTitle:forState'を呼び出すためのショートカットにすぎませんが、そうではありません。 – LucasTizma
同様に、titleLabelのtextColorプロパティを直接設定することはできないようですが、setTitleColor:forState:メソッドを使用する必要があります。ドキュメントには記載されていないため、これに言及してくれてありがとう。 – arlomedia