1

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
        }

    }
4

1 回答 1

1

sizeWithFont:constrainedToSize:lineBreakMode:简单地计算一个NSString. 由于NSString没有颜色的概念,这种方法也不关心颜色。

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

于 2012-04-13T05:39:34.557 回答