2012-03-15 6 views
1

私はUIButtonsに5を加えてUITableViewCellを持っています。プログラムでボタンを作成し、アクションと画像を追加します。ボタンは正しい場所に置かれ、アクションは機能し、タグは設定されていますが、クリアされています。画像は表示されません。UIButtonは画像を表示しません

if ([[self.compCompletion objectForKey:@"Key" isEqualToString:@"YES"]) { 
      UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
      button.frame = CGRectMake(11, 6, 21, 21); 
      button.tag = 1; 
      [button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside]; 
      [button setImage:[UIImage imageNamed:@"Comp-Completed.png"] forState:UIControlStateNormal]; 
      [button setContentMode:UIViewContentModeScaleToFill]; 
      [cell.contentView addSubview:button]; 
     } 
     else { 
      UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
      button.frame = CGRectMake(11, 6, 21, 21); 
      button.tag = 1; 
      [button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside]; 
      [button setImage:[UIImage imageNamed:@"Comp-Uncompleted.png"] forState:UIControlStateNormal]; 
      [button setContentMode:UIViewContentModeScaleToFill]; 
      [cell.contentView addSubview:button]; 
     } 

私が追加しようとしました::

これは私がいずれかのボタンを作成し、セルにそれらを追加するために使用していますものです、このコードはtableView:cellForRowAtIndexPath:である[button setEnabled:YES];[button setHidden:NO];を、そして[button setNeedsDislpay];運がないプロセスに。画像を表示するにはどうしたらいいですか?

EDIT: 私のイメージは、存在して作成したUIImage、と私はUIButtonの外にUIImageを引き出し、それをファイルに保存することができます。私は外観を制御して変更したUIButtonの各プロパティを調べました。私はまた、UIButtonTypeRoundedRectUIButtonTypeAddContactの空のUIButtonを試しました。私は今これがUITableViewCellとは関係があり、UIButtonsが好きでないとか、UITableViewCellUIButtonを追加していると信じています。

+0

イメージ名が正しく(大文字と小文字)、プロジェクトにイメージファイルが含まれていますか? – jrturton

+0

はいイメージ名が正しいです、別のUITableViewのアクセサリビューに同じイメージを使用します –

+0

セルにボタンが表示されていますか? bacgroundColorを設定してください... –

答えて

0

間違いなく画像を見つけることができますか?それらはプロジェクトに含まれていますか?

テストするには、Comp-Completed.pngではなく、すでに他の場所で使用していたイメージを試してみてください。正常に動作する場合は、そのファイルが見つからないということがわかります。

+0

私は別のイメージを使用していますが、それでも動作しません。私はまた、イメージ名を二重にチェックしました、そして、彼らは正しいです。 –

0

イメージが存在し、インポートされているかどうかを確認してください。また、画像名の他にコードは同じであると私に見えます。ファイルをコピーするときに、ターゲットメンバーとしてプロジェクトをチェックしていることを確認します

UIImage *buttonImage; 
if ([[self.compCompletion objectForKey:@"Key" isEqualToString:@"YES"]) { 
    buttonImage = [UIImage imageNamed:@"Comp-Completed.png"]; 
} else { 
    buttonImage = [UIImage imageNamed:@"Comp-Uncompleted.png"]; 
} 

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(11, 6, 21, 21); 
button.tag = 1; 
[button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside]; 
[button setImage:buttonImage] forState:UIControlStateNormal]; 
[button setContentMode:UIViewContentModeScaleToFill]; 
[cell.contentView addSubview:button]; 
+0

イメージが存在し、インポートされている、私は別のUITableViewで同じイメージを使用し、彼らはそこで動作します。 (しかし私はそれらをUIButtonに入れていません。) –

0
UIImage * normalImage = [UIImage imageNamed:@"Comp-Uncompleted.png"]; 
UIImage * selectedImage = [UIImage imageNamed:@"Comp-Completed.png"]; 

UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 
button.frame = CGRectMake(11, 6, 21, 21); 
button.tag = 1; 
[button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside]; 
[button setImage:normalImage forState:UIControlStateNormal]; 
[button setImage:selectedImage forState:UIControlStateSelected]; 
[cell.contentView addSubview:button]; 

if ([[self.compCompletion objectForKey:@"Key" isEqualToString:@"YES"]) { 
    button.selected = YES; 
} else { 
    button.selected = NO; 
} 
6

:としてビットクリーナー。それは私が問題を解決するのを助けました。

0

私はそれが古い問題だと知っていますが、同じ問題を遭遇しました。それはisHiddenisUserInteractionEnabledがボタンを隠すために設定されていたためです。

YESまたはNOに設定するときは注意が必要です。

1

私の間違いは、画像をメインプロジェクトではなく、ポッドの一部であるimages.xcassetsファイルにドラッグしていたことです。それはストーリーボードでうまくいったが、アプリには現れなかった。

関連する問題