0

テキストで満たされたいくつかの UILabels があります。

UILabels 内のすべてのフォントは自動縮小に設定されています。

UILabels の 1 つに含まれるテキストが多すぎる (そして自動的にサイズ変更する必要がある) 場合、残りの UILabels フォント サイズを、サイズ変更されたものと一致するように変更するにはどうすればよいですか?

コードの最後で、次のものを使用しました。

 if (self.label.font.pointSize < 16){

        labelTwo.font = [UIFont fontWithName:@"Noteworthy-Bold" size:self.label.font.pointSize];

私のデフォルトのフォントサイズは16なので、フォントサイズが縮小されているかどうかを確認しています。

4

2 に答える 2

2

私は現在Macを使用していないので、実際のコードを書くことはできませんが、どちらの方向に進むべきかがわかるように、疑似的にコードを書くことはできます。

Create a variable to store the smallest font size.
Foreach for each UILabel in the view.
Get the font size.
Check the font size against the smallest known so far.
    If the font size is smaller than the smallest known, save it.
    Else, disregard.
After all UILabels in view have been checked go back through them, and set the font size to that of the saved value
于 2012-11-19T20:59:50.827 に答える
0

これが私がそれを達成した方法です

CGFloat fontSize = self.label1.font.pointSize;
CGFloat fontSize1 = self.label2.font.pointSize;
CGFloat fontSize2 = self.label3.font.pointSize;
NSArray *numbers = @[[NSNumber numberWithFloat:fontSize],[NSNumber numberWithFloat:fontSize1],[NSNumber numberWithFloat:fontSize2]];
float xmax = -MAXFLOAT;
float xmin = MAXFLOAT;
for (NSNumber *num in numbers) {
    float x = num.floatValue;
    if (x < xmin) xmin = x;
    if (x > xmax) xmax = x;
    NSLog(@"lowest number = %f",xmin);
于 2015-01-13T11:14:33.440 に答える