8

.

こんにちは、

私はUIViewControllerにUIButtonとその他のアイテムをプログラムで追加しようとしています.私が読んで他のSOの質問で見たことから、このコードで正しい軌道に乗る必要があります:

- (void)viewDidLoad
{
[super viewDidLoad];



UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];    
backButton = [[UIButton alloc] init];
backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(10, 25, 150, 75);
backButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
backButton.titleLabel.text = @"Back"; 
[self.view addSubview:backButton];


// Do any additional setup after loading the view.
}

そのコードが viewDidLoad メソッドに配置され、表示されないため、何が間違っているのでしょうか?

背景の色を変更してviewDidLoadに入れたいときはうまくいきます。

乾杯ジェフ

4

7 に答える 7

25

ボタンを正しく挿入していると思いますが、背景がなく、テキストが表示されていないため、ボタンが表示されません。

丸みを帯びた四角形のボタンシステム ボタンを使用してみて、それが表示されるかどうかを確認してください。テキストを正しく設定してください。フォントに問題がある場合に備えて、フォントの設定も削除します。

// backButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
backButton = [UIButton buttonWithType:UIButtonTypeSystem];
backButton.frame = CGRectMake(10, 25, 150, 75);
[backButton setTitle:@"Back" forState:UIControlStateNormal];
[self.view addSubview:backButton];

更新:UIButtonTypeRoundedRect廃止されました。

于 2012-05-25T00:59:03.430 に答える
4

静的メソッド buttonWithType を使用してボタンを作成しましたが、そのボタンにメモリを割り当てました。

UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(10, 25, 150, 75);
backButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
backButton.titleLabel.text = @"Back";
[self.view addSubview:backButton];
于 2013-01-04T05:35:10.013 に答える
4

ボタンのタイトルを正しく設定していません。使用する:

- (void)setTitle:(NSString *)title forState:(UIControlState)state

また、他の人が言ったように、ボタンを3回初期化する必要はありません。2 行目と 3 行目を削除します。

于 2012-05-25T00:56:22.600 に答える
0

dispatch_after を使用して、後でブロックを呼び出すことができます。したがって、ここでは最初のビューが読み込まれ、0.1 秒以内にすべてのボタンがビューに表示されます。Xcode で、dispatch_after と入力し始めて Enter キーを押すと、次のようにオートコンプリートされます。

これを試して:

 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

  UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];    
  backButton = [[UIButton alloc] init];
  backButton = [UIButton buttonWithType:UIButtonTypeCustom];
  backButton.frame = CGRectMake(10, 25, 150, 75);
  backButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
  backButton.titleLabel.text = @"Back"; 
  [self.view addSubview:backButton];

 });
于 2015-06-05T13:10:48.090 に答える
0

ボタンのタイプは RoundedRect を使用する必要があり、背景色を確認できます

[UIButton buttonWithType: UIButtonTypeRoundedRect]; 

それが役立つことを願っています!

于 2015-05-15T10:38:21.400 に答える
0

コメントで指摘された問題は別として

UIButtonTypeCustom は、空白のボタンを作成します。

画像をボタンとして使用したい場合にこれを使用しますが、setImage: を使用するとボタンのタイトルが上書きされることに注意してください。したがって、BackgroundImage を設定する必要があります。

あなたのボタンは実際にはそこにありますが、そこにあるように「見えない」だけです

そう

用途UIButtonTypeRoundRect(多少異なる場合があります)

または、画像をボタンとして使用する場合。

呼び出してからUIButtonTypeCustom 呼び出すsetBackgroundImage:setTitle:forState:

于 2012-05-25T00:58:33.240 に答える