gpt4 book ai didi

iphone - 是否可以使用 Cocoa Touch 更改字体的字母间距/字距调整?

转载 作者:太空狗 更新时间:2023-10-30 03:18:08 26 4
gpt4 key购买 nike

我已经在 Internet 上搜索了一段时间,以获取有关如何在 UIKit 中更改字体的字母间距/字距调整的信息。

我担心的是,就像使用您自己的自定义字体一样,您根本做不到。这将是一个可怕的消息。

我知道 Apple 通过这些限制来保护我们免受不良设计的影响,但它们也阻止我们实现真正优秀的设计。

人们建议我做什么?

  1. 使用标准字距调整的字体,人们可能不会注意到差异。

  2. 找到某人的黑客类(class),让用户在放弃辛苦赚来的钱后得到应有的外观。

  3. 使用我不知何故忽略的方法,并使用 UIKit 来完成,向传授这一隐藏知识的人表示我永恒的感激。

最佳答案

已接受的答案丢失了很多格式,user363349 的答案大部分对我有用,但文本对齐不起作用。我修改了代码来解决这个问题:

- (void) drawRect:(CGRect)rect
{
// Drawing code
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSelectFont (context, [self.font.fontName cStringUsingEncoding:NSASCIIStringEncoding], self.font.pointSize, kCGEncodingMacRoman);
CGContextSetCharacterSpacing(context, characterSpacing);
CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);
CGAffineTransform myTextTransform = CGAffineTransformScale(CGAffineTransformIdentity, 1.f, -1.f );

CGContextSetTextMatrix (context, myTextTransform);

// draw 1 but invisbly to get the string length.
CGPoint p =CGContextGetTextPosition(context);
float centeredY = (self.font.pointSize + (self.frame.size.height- self.font.pointSize)/2)-2;
CGContextShowTextAtPoint(context, 0, centeredY, [self.text cStringUsingEncoding:NSASCIIStringEncoding], [self.text length]);
CGPoint v =CGContextGetTextPosition(context);

// calculate width and draw second one.
float width = v.x - p.x;
float destX = 0;

// calculate X position based on alignment
if([self textAlignment] == UITextAlignmentLeft){
destX = 0;
}else if([self textAlignment] == UITextAlignmentCenter){
destX = (self.frame.size.width- width)/2;
}else if([self textAlignment] == UITextAlignmentRight){
destX = self.frame.size.width - width;
}
CGContextSetFillColorWithColor(context, [self.textColor CGColor]);
CGContextShowTextAtPoint(context, destX, centeredY, [self.text cStringUsingEncoding:NSASCIIStringEncoding], [self.text length]);
}

关于iphone - 是否可以使用 Cocoa Touch 更改字体的字母间距/字距调整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com