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ストーリーボードエディターで色を設定する必要があります。または、データソース/デリゲートメソッドでUITableViewCell'textLabelを設定することもできます。detailTextLabelUITableView

于 2012-04-13T05:39:34.557 に答える