gpt4 book ai didi

ios - UILabel 斜体字体裁剪

转载 作者:可可西里 更新时间:2023-11-01 03:57:52 32 4
gpt4 key购买 nike

我正在尝试解决这个问题,因为在我正在处理的应用程序中我有很多字体,因此当用户更改字体时标签的大小是动态计算的。

我遇到的问题是,如果字体是斜体,那么 UILabel 会在末尾被剪掉,如下图所示:

UILabel clipping example

这是我目前尝试过的:

  • 借助 CoreText 和 CGSize CTFramesetterSuggestFrameSizeWithConstraints ( CTFramesetterRef framesetter, CFRange stringRange, CFDictionaryRef frameAttributes, CGSize constraints, CFRange *fitRange ); 计算宽度
  • 借助 NSAttributedString 和 - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context 计算宽度
  • 借助 NSString 和 - (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrs 计算宽度
  • 使用临时 UITextView 和 sizeThatFits´ and适合大小`

由于应用程序中有很多字体,我需要动态设置标签的宽度,因此继承 UILabel 并在 drawFrameInRect 上添加更多点不工作。

这是关于 Github 的示例代码.

感谢任何帮助/建议。

最佳答案

CGSize size = [label.text sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17.0f]}];
CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height));

并根据 adjustedSize 更新标签的宽度和高度。希望它有效

关于ios - UILabel 斜体字体裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33985683/

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