iphone - sizeWithFont:constrainedToSize:lineBreakMode:使用UILineBreakModeClip时不正确?

标签 iphone objective-c ios

我在sizeWithFont(特别是lineBreakMode)上遇到了一些麻烦。

CGSize maxSize = CGSizeMake(30, 999);
UIFont *font = [UIFont fontWithName:@"TrebuchetMS" size:10.0f];
CGSize size = [@"hello" sizeWithFont: font constrainedToSize:maxSize lineBreakMode:UILineBreakModeClip];

使用此代码,大小返回宽度为23且高度为13,这是正确的,但是,如果我将maxSize减小为(10,999),则返回的大小最终将为宽度9和高度39 ,就好像文本已被换行了。 UILineBreakModeClip是否应该导致高度保持与最初的高度相同(其余的行都被剪切掉了),或者我对此是否有所了解?

最佳答案

sizeWithFont:constrainedToSize:lineBreakMode:用于计算多行文本,因此它将文本分成多行以尝试使其适合给定宽度。而是尝试使用sizeWithFont:forWidth:lineBreakMode:来处理一行文本。

有关信息,请参见UIKit NSString Additions Reference

关于iphone - sizeWithFont:constrainedToSize:lineBreakMode:使用UILineBreakModeClip时不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8035443/

相关文章:

iPhone - 包括 subview 和可能的内存泄漏?

ios - 使用新项目 iOS 上传新版本的应用程序

ios - Objective C 中的蓝牙配对与连接

objective-c - 在 NSOutlineView 中拖放的问题

ios - 使表格 View 内的 UITextField 可见滚动

ios - 使用一个 UIWebView 加载具有不同按钮的多个 URL -- iOS Swift

ios - 在 iPad 上运行的 iPhone 应用程序缺少 "2x"按钮

ios - 在 iOS 设备中存储图像和文件

iOS 11 CoreNFC 如何检查设备是否具有 NFC 功能?

ios - 一个应用程序如何在不切换应用程序的情况下向另一个应用程序提供数据?