作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试解决这个问题,因为在我正在处理的应用程序中我有很多字体,因此当用户更改字体时标签的大小是动态计算的。
我遇到的问题是,如果字体是斜体,那么 UILabel 会在末尾被剪掉,如下图所示:
这是我目前尝试过的:
CGSize CTFramesetterSuggestFrameSizeWithConstraints ( CTFramesetterRef framesetter, CFRange stringRange, CFDictionaryRef frameAttributes, CGSize constraints, CFRange *fitRange );
计算宽度- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context
计算宽度- (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrs
计算宽度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/
我是一名优秀的程序员,十分优秀!