3

ビューにボーダレスUIButtonを追加したいと思います。Interface Builderを使用して、オブジェクトライブラリからRoundRectButtonをドラッグしてこれを行います。次に、属性インスペクターで、[タイプ]を[カスタム]に変更し、タイトルを[ボタン]のままにします。インターフェイスビルダーですべてが大丈夫です。しかし、これはプログラムによるアプローチには当てはまりません。プログラム的に、これは私がそれを行う方法です:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:CGRectMake(x, y, width, height)];
[button setTitle:@"Button" forState:UIControlStateNormal];

アプリを実行してもボタンが表示されません。ここで何かが足りないのかもしれませんが、タイプを変更するUIButtonTypeRoundRectとボタンが表示されます。しかし、繰り返しになりますが、ボタンをフチなしにします。

とにかく、私はいつでもInterfaceBuilderを使うことができます。ただし、プログラマティックアプローチが機能しない理由を理解したいと思います。それで、誰かが問題が何であるか知っていますか?

4

3 に答える 3

7

UIButtonTypeCustom実際には、カスタムボタンタイプです。デフォルトでは、意味のある値は設定されていません。表示する場合は、背景色やタイトル色を不透明に設定する必要があります。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:CGRectMake(x, y, width, height)];
[button setTitle:@"Button" forState:UIControlStateNormal];
// Set visible values
[button setBackgroundColor:[UIColor greenColor]];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[someSuperview addSubview:button];
于 2012-11-13T17:21:14.133 に答える
3

ここで私はあなたのコードを使用しましたあなたが欠けているものはそれです

 [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
于 2012-11-13T17:21:38.037 に答える
1

こんにちは私は同じ状況にありました。コードのどこかになぜあったのかわかりません

button.translatesAutoresizingMaskIntoConstraints = NO;

その行を削除すると、問題なくボタンフレームを設定できました。お役に立てれば

于 2014-10-08T10:06:37.907 に答える