簡體   English   中英

UILabel textColor在iOS 4.3中未正確設置

[英]UILabel textColor doesn't set properly in iOS 4.3

在使用iOS 5.1 Simulator應用程序時感覺很棒,但是在iOS 4.3 Simulator上對其進行測試后,出現了一些難以理解的問題:

我將自定義UITableViewCell用於UITableView,它只有幾個UILabel和一個UITextView。 問題在於textColor屬性似乎根本不起作用-盡管顯示了背景並且NSLog打印正確的文本,但標簽上的所有文本仍然不可見。 我嘗試在IB和以編程方式更改textColor值,但均無濟於事。

怎么樣UITextView-沒關系。 我想我可以用textViews替換所有標簽,但這不是編程的好方法,不是嗎?

謝謝您的幫助,無休止,因為這真讓我震驚!

更新(已添加源代碼)

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    FeedItemCell *cell = [tableView dequeueReusableCellWithIdentifier:[FeedItemCell cellID]];
    if (!cell) {
        cell = [FeedItemCell cell];
    }

    NSIndexPath *selectedPath = [tableView indexPathForSelectedRow];
    if (selectedPath && (indexPath.row == selectedPath.row) ) {
        [self selectRowAtIndexPath:indexPath];
    }

    [cell fillWithContents:[feedItemsController.fetchedObjects objectAtIndex:indexPath.row]];
    return cell;
}

//---
@implementation FeedItemCell 

- (void)fillWithNewsItemContents:(FeedItem *)feedItem {
    self.nameLabel.text = [feedItem.creator fullName];
    self.dateLabel.text = [TimeFormatter newsTimeWithDate:feedItem.postedDate];
    self.detailTextView.text = [FeedItemCell detailTextViewStringFromFeedItem:feedItem];
    self.commentLabel.text = [self _commentsTitleWithNews:feedItem];
    self.avatarImageView.image = [feedItem.creator avatar];
}

所有UILabel都在xib -file中定義 在此處輸入圖片說明

看來我找到了解決方案。 由於某些原因, UILabel在iOS 4.3中不支持Helvetica Neue字體(盡管UITextView確實支持)。 我剛剛注意到它添加了其他測試UILabel並在成功之后嘗試查找新舊版本之間的差異。

因此,現在只需要選擇其他合適的字體即可:)

非常感謝大家,對於沒有理由的麻煩深表歉意。

這很奇怪。 但我建議您在實際的iOS 4.3和5.1設備上進行測試。 模擬器的准確度是95%,而不是100%。 因此,您應該在設備上進行完整性檢查。

看到您的代碼真是太好了–特別是,我希望看到:

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath

或者,無論您在何處分配,實例化這些UILabel行為並將其添加為子視圖。 但是我可以對可能出問題的地方做出一些猜測:

  • 您可能試圖在正確分配或實例化UILabel之前設置其元素。 例如,如果您致電:

     [myLabel setText:@"Hello"]; 

    致電之前:

     UILabel *myLabel = [[UILabel alloc] initWithFrame:someFrame]; 

    如果您這樣做,它將很好地編譯並在運行時靜默失敗。

  • 您可能會忘記將標簽添加到適當的UIView –在UITableViewCell ,通常應將內容作為單元格contentView屬性的子視圖添加:

     [[myCell contentView] addSubview:myLabel]; 

可能還會發生其他事情,但是在進行任何盲目猜測之前,我寧願先查看您正在使用的代碼。 然后,我將更新我的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM