Objective c 使用CGSize点或像素确定UIFont大小
我可以用精确定义的点大小(例如(20x20))制作CGRect,这样我就可以精确计算屏幕上的实际大小(厘米或英寸)。Objective c 使用CGSize点或像素确定UIFont大小,objective-c,swift,uiview,uifont,cgrect,Objective C,Swift,Uiview,Uifont,Cgrect,我可以用精确定义的点大小(例如(20x20))制作CGRect,这样我就可以精确计算屏幕上的实际大小(厘米或英寸)。 -(void) drawRect:(CGRect)rect{ [super drawRect:rect]; CGRect rectangle = CGRectMake(0, 0, 20, 20); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBFillColor
-(void) drawRect:(CGRect)rect{
[super drawRect:rect];
CGRect rectangle = CGRectMake(0, 0, 20, 20);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, rectangle);
}
我想以类似的方式确定UIFont的大小(总是只有一个字符“A..Z”或“1..9”),这样我至少可以计算屏幕上的实际高度。
-(void) drawRect:(CGRect)rect{
[super drawRect:rect];
CGRect rectangle = CGRectMake(0, 0, 20, 20);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, rectangle);
}
是否可以从CGSize到UIfont size计算字体大小,使其在屏幕上真正匹配?我找到了解决此类问题的方法
如果您想要一个UIFont来适应CGRect或标签,那么在大多数情况下它不会适应CGRect。原因是字体特定的填充。 如果希望字体适合CGRect,则必须知道如何使用小写或大写字母,然后将Font.xHeigth或Font.capHeight设置为Font.pointSize。因此,您将获得更大的字体.pointsize.
这个小代码片段解决了我的问题:
+(CGFloat) fitFontSize:(UIFont*) font{
CGFloat fontSize = font.pointSize;
bool fontSizeAdjusted = false;
while (!fontSizeAdjusted) {
CGFloat xHeight = font.xHeight;
if( fontSize-xHeight > 0.1 ){
font = [font fontWithSize:font.pointSize+1];
}else{
fontSizeAdjusted = true;
fontSize = font.pointSize;
}
}
return fontSize;
}
这篇文章帮助我更多地了解了我找到了解决这类问题的方法
如果您想要一个UIFont来适应CGRect或标签,那么在大多数情况下它不会适应CGRect。原因是字体特定的填充。 如果希望字体适合CGRect,则必须知道如何使用小写或大写字母,然后将Font.xHeigth或Font.capHeight设置为Font.pointSize。因此,您将获得更大的字体.pointsize.
这个小代码片段解决了我的问题:
+(CGFloat) fitFontSize:(UIFont*) font{
CGFloat fontSize = font.pointSize;
bool fontSizeAdjusted = false;
while (!fontSizeAdjusted) {
CGFloat xHeight = font.xHeight;
if( fontSize-xHeight > 0.1 ){
font = [font fontWithSize:font.pointSize+1];
}else{
fontSizeAdjusted = true;
fontSize = font.pointSize;
}
}
return fontSize;
}
这篇文章帮助我了解了更多关于