【问题标题】:Xcode: sizeWithFont:constrainedToSize:lineBreakMode: iPad issue with system text color?Xcode: sizeWithFont:constrainedToSize:lineBreakMode: iPad 系统文本颜色问题?
【发布时间】:2012-04-25 10:40:45
【问题描述】:

我正在使用sizeWithFont:constrainedToSize:lineBreakMode: 来计算我的 UITableViewcell 所需的高度。下面的代码在 iPhone 和 iPad 上运行良好。

在 IB(故事板)中,我已将文本颜色设置为“深灰色”(我为 iPhone 和 iPad 使用单独的故事板,并且我都设置了颜色。)。 iPhone 表现完美。然而,iPad 没有使用我的深灰色,而是显然使用了默认文本颜色(黑色),我似乎无法更改它。这可能是一个已知的错误还是我做错了什么?

有没有办法以编程方式在我的sizeWithFont:constrainedToSize:lineBreakMode: 或其他地方添加文本颜色?

非常感谢。

if ([self.storyDescription description]) summary = [self.storyDescription description];

        if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) {
            CGSize s = [summary sizeWithFont:[UIFont systemFontOfSize:15] 
                       constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT)  // - 40 For cell padding
                           lineBreakMode:UILineBreakModeWordWrap];
            return s.height + 20; // Add padding
        } else {
            CGSize s = [summary sizeWithFont:[UIFont systemFontOfSize:18] 
                           constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT)  // - 40 For cell padding
                               lineBreakMode:UILineBreakModeWordWrap];
            return s.height + 40; // Add padding
        }

    }

【问题讨论】:

    标签: iphone xcode ipad fonts storyboard


    【解决方案1】:

    sizeWithFont:constrainedToSize:lineBreakMode: 只是计算NSString 的大小。由于NSString 没有颜色的概念,所以这个方法也不关心颜色。

    您应该在 Xcode Storyboard 编辑器的 UILabel 检查器中设置颜色。或者,您可以在UITableView 数据源/委托方法中设置UITableViewCelltextLabeldetailTextLabel

    【讨论】:

    • 我确实在 Xcode Storyboard 中设置了颜色,但同样,它只适用于 iPhone。无论我在情节提要中设置什么,iPad 似乎都不在乎。我最终以编程方式完成了它:if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { cell.textLabel.font = [UIFont systemFontOfSize:16.0]; cell.textLabel.textColor = [UIColor darkGrayColor]; cell.detailTextLabel.textColor = [UIColor darkGrayColor]; cell.textLabel.shadowColor = [UIColor lightTextColor]; cell.textLabel.shadowOffset = CGSizeMake(1, 1); }
    猜你喜欢
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    相关资源
    最近更新 更多