2012-03-15 86 views
1

我有一個UITableViewCell,我添加了五個UIButtons。我以編程方式創建按鈕,添加一個動作和一個圖像。按鈕被放置在正確的位置,動作起作用,標籤被設置,但是它們很清晰。圖像不顯示。UIButton不顯示圖像

這是我用來創建一個按鈕,並將其添加到細胞是什麼,這個代碼是在tableView:cellForRowAtIndexPath:

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]; 
     } 

我試着添加:[button setEnabled:YES];[button setHidden:NO];[button setNeedsDislpay];到沒有運氣的過程。如何獲取顯示圖像的按鈕?

編輯: 我的形象存在,創造了UIImage,我可以拉UIImageUIButton的,並將其保存到一個文件中。我已經通過UIButton的每個屬性來控制外觀並更改它們。我也嘗試了UIButtonTypeRoundedRectUIButtonTypeAddContact類型的空UIButton。我現在認爲這與UITableViewCell不喜歡UIButtons有關,或者我如何將UIButton添加到UITableViewCell

+0

確定圖像名稱是否正確(包括大小寫)並且圖像文件包含在項目中? – jrturton 2012-03-15 17:36:48

+0

是的圖像名稱是正確的,我用不同的UITableView中的附件視圖相同的圖像 – 2012-03-15 17:44:34

+0

您確定該單元格顯示按鈕?嘗試設置它的bacgroundColor以確保... – 2012-03-15 20:04:46

回答

0

它可以絕對找到圖像嗎?他們是否包含在項目中?

只是爲了測試,嘗試使用您已經在其他地方使用的圖像,而不是Comp-Completed.png - 如果有效,您知道問題在於它無法找到該文件。

+0

我使用不同的圖像,但它仍然無法正常工作。我也加倍檢查了圖像名稱,並且它們是正確的。 – 2012-03-15 17:46:31

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中。) – 2012-03-15 17:48:59

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設置爲隱藏按鈕的值。

您必須小心將它們設置爲YESNO

1

我的錯誤是將圖像拖入作爲pod的一部分的images.xcassets文件中,而不是主項目。它在故事板中顯示得很好,但沒有出現在應用程序中。