2012-07-31 113 views
1

正确设置虽然与iOS 5.1的工作程序模拟器感觉很棒,但测试它在iOS 4.3模拟器后某种不知所云的问题出现了:的UILabel文字颜色不的iOS 4.3

我使用自定义的UITableViewCell的UITableView的,并它有几个UILabels和一个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 s的在xib -file enter image description here

+0

我想这将是你的一部分的一些愚蠢的错误。你能告诉我们代码吗? – Sulthan 2012-07-31 17:11:44

回答

1

看起来好像我找到了解决方案。由于某些原因,UILabel不支持iOS 4.3中的Helvetica Neue字体(尽管UITextView确实如此)。 我刚刚注意到它增加了其他测试UILabel s,并且在成功之后试图找出新旧区别。

因此现在只需要选择其他合适的字体:)

谢谢大家非常多,对不起,麻烦不值得原因。

+0

iOS4.3以下版本支持Helvetice Neue,它只支持Bold,Bold Italic,Italic和Normal格式。不是瘦,中等,光和类似的东西。 在iOS5中,默认标签字体是Helvetice Neue Light在iOS5之前不存在的,这是实际的问题。 – Laszlo 2013-11-15 10:58:37

0

这是很奇怪的定义。但我会建议你在实际的iOS 4.3和5.1设备上进行测试。模拟器95%准确性不是100%。所以你应该在设备上做一个完整的检查。

0

这将是非常巨大的,看看你的代码 - 特别是,我想看看:

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

有一些其他可能发生的事情,但我宁愿在做任何盲目的猜测之前查看您使用的代码。那么我会更新我的答案。