X*********n 发帖数: 570 | 1 ios开发中在UITextField中如何根据字数多少自动调整字体大小?
发现如果字数太多,后面的就显示“。。。”了 而不是自动缩小字体而显示更多的字
选了min font size和adjust to fit也不起作用
网上搜了一圈 没发现有用的帮助 可有高人有经验可以分享,谢谢 |
z*******n 发帖数: 1034 | 2 自己算,这有个UILabel多行的,改一改
////UILabel+MultiLineAutoSize.h
#import
@interface UILabel (MultiLineAutoSize)
- (void)adjustFontSizeToFit;
@end
////UILabel+MultiLineAutoSize.m
#import "UILabel+MultiLineAutoSize.h"
@implementation UILabel (MultiLineAutoSize)
- (void)adjustFontSizeToFit
{
int maxDesiredFontSize =22;
int minFontSize = self.minimumFontSize;
CGFloat labelWidth = self.frame.size.width;
CGFloat labelRequiredHeight = self.frame.size.height;
UIFont *font = self.font;
int i=0;
for(i = maxDesiredFontSize; i > minFontSize; i=i-2)
{
font = [font fontWithSize:i];
NSLog(@"Trying size: %u", i);
/* This step is important: We make a constraint box
using only the fixed WIDTH of the UILabel. The height will
be checked later. */
CGSize constraintSize = CGSizeMake(labelWidth, MAXFLOAT);
// This step checks how tall the label would be with the desired
font.
CGSize labelSize = [self.text sizeWithFont:font constrainedToSize:
constraintSize lineBreakMode:NSLineBreakByWordWrapping];
/* Here is where you use the height requirement!
Set the value in the if statement to the height of your UILabel
If the label fits into your required height, it will break the loop
and use that font size. */
if(labelSize.height <= labelRequiredHeight)
break;
}
// You can see what size the function is using by outputting: NSLog(@"
Best size is: %u", i);
// Set the UILabel's font to the newly adjusted font.
self.font = font;
// Put the text into the UILabel outlet variable.
self.text = self.text;
}
@end
【在 X*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : ios开发中在UITextField中如何根据字数多少自动调整字体大小? : 发现如果字数太多,后面的就显示“。。。”了 而不是自动缩小字体而显示更多的字 : 选了min font size和adjust to fit也不起作用 : 网上搜了一圈 没发现有用的帮助 可有高人有经验可以分享,谢谢
|
z*******n 发帖数: 1034 | 3 大致过程就是 得到UITextField的width和text 然后缩小字体算width
【在 X*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : ios开发中在UITextField中如何根据字数多少自动调整字体大小? : 发现如果字数太多,后面的就显示“。。。”了 而不是自动缩小字体而显示更多的字 : 选了min font size和adjust to fit也不起作用 : 网上搜了一圈 没发现有用的帮助 可有高人有经验可以分享,谢谢
|
X*********n 发帖数: 570 | 4 谢谢版主
【在 z*******n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 大致过程就是 得到UITextField的width和text 然后缩小字体算width
|
z*******n 发帖数: 1034 | 5 my pleasure
【在 X*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 谢谢版主
|