2

すべてのプロパティが設定されたテキスト フィールドを使用しています。編集中にフォントのサイズが変更されず、テキストがテキスト フィールドのビューから外れます。

txtTitle.font = [UIFont fontWithName:@"Helvetica" size:15.0f];
[txtTitle setMinimumFontSize:3.0];
[txtTitle setAdjustsFontSizeToFitWidth:YES]; 

ある程度サイズを変更すると、テキストがビュー テキスト フィールドを超えた場合と同じ結果になります

4

3 に答える 3

5

私はそれが古いスレッドであることを知っていますが、それでもあなたが理解できなかった場合に備えて. これはバグであり、回避策として次の方法を使用できます。UITextField にカテゴリを作成し、次のメソッドを記述して、テキスト フィールドの幅に合わせてフォント サイズを変更する必要がある場合に呼び出します。

- (void)adjustFontSizeToFit
{
UIFont *font = self.font;
CGSize size = self.frame.size;
for (CGFloat maxSize = self.font.pointSize; maxSize >= self.minimumFontSize; maxSize -= 1.f)
{
    font = [font fontWithSize:maxSize];
    CGSize constraintSize = CGSizeMake(size.width, MAXFLOAT);
    CGSize labelSize = [self.text sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
// Keeping the width constant if given text requires more height , decrease the font size.
    if(labelSize.height <= size.height)
    {
        self.font = font;
        [self setNeedsLayout];
        break;
    }
}
// set the font to the minimum size anyway
self.font = font;
[self setNeedsLayout];
}
于 2013-03-15T08:55:16.583 に答える