- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想计算文本的高度以获得 Collection View 单元格的估计高度。我在 collectionViewLayout
函数中使用了以下代码;
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if let messageText = messages[indexPath.row]?.text {
let size = CGSize(width: view.frame.width, height: 1000)
let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
let estimatedFrame = NSString(string: messageText).boundingRect(with: size, options: options, attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 17)], context: nil)
return CGSize(width: view.frame.width, height: estimatedFrame.height + 20)
}
return CGSize(width: view.frame.width, height: 100)
}
这适用于系统字体,但不适用于我项目中的自定义字体。问题是 estimatedFrame 不等于使用系统字体的结果。我认为问题在于选项的参数:attributes
。有没有像 UIFont.systemFont(ofSize: 17)
这样的自定义字体的方法?
最佳答案
如果我没看错你的问题,你想要:
UIFont(name: "yourCustomFontNameString", size: 17)
所以:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if let messageText = messages[indexPath.row]?.text {
let size = CGSize(width: view.frame.width, height: 1000)
let options = NSStringDrawingOptions.usesFontLeading.union(.usesLineFragmentOrigin)
let estimatedFrame = NSString(string: messageText).boundingRect(with: size, options: options, attributes: [NSAttributedStringKey.font: UIFont(name: "yourCustomFontNameString", size: 17)], context: nil)
return CGSize(width: view.frame.width, height: estimatedFrame.height + 20)
}
return CGSize(width: view.frame.width, height: 100)
}
关于swift - 如何为自定义字体声明 NSAttributedStringKey.font?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47145432/
我正在按照在线教程构建一个杂志类型的 iOS 应用程序。我正在尝试使用 NSAttributedStringKey 但不断收到如下所示的错误。有什么想法吗? 这是导致错误的代码行: let attrs
我想计算文本的高度以获得 Collection View 单元格的估计高度。我在 collectionViewLayout 函数中使用了以下代码; func collectionView(_ coll
可以通过 largeTitleTextAttributes 自定义新的大标题功能,(与任何其他属性一样) dictionary with NSAttributedStringKey 键。其中一个键是
处理一些 objC API,我收到一个 NSDictionary *>转换为 [String : Any]在 Swift 中,我将其用于 NSAttributedString.addAttribute
我正在使用 ZSWTappableLabel 和 ZSWTaggedString 来显示标签内的链接。 import ZSWTappableLabel import ZSWTaggedString p
这个问题在这里已经有了答案: How can I both stroke and fill with NSAttributedString w/ UILabel (5 个答案) 关闭 4 年前。 我
我最近转换了我的应用程序,但不断收到错误消息 "Cannot convert value of type '[String : Any]' to expected argument type '[NS
我在使用 NSAttributedStringKey.attachment 与 NSAttachmentAttributeName 时遇到了问题。相关代码如下: var key: Any?
我在使用库中的 Swift 代码时遇到了一些问题,我已经使用了一段时间。这似乎与某种版本冲突有关,但我不确定。 代码如下: let attribMsg = NSAttributedString(str
更新到 Swift 4 后,我收到此代码的错误 attributes["NSFont"] = font attributes["NSColor"] = UIColor(red: 0.0
下面是针对上述问题的代码行。此问题发生在 Swift 4.1 中。 let textAttributes = [NSAttributedStringKey.foregroundColor:UIColo
我正在尝试在我的应用程序中创建一个超链接,并且正在实现此解决方案: let attributedString = NSMutableAttributedString(string: "Just cli
刚刚更新了 xcode 9 的 pod,我收到以下关于 Cosmos 的错误. Type 'NSAttributedStringKey' (aka 'NSString') has no member
这个问题在这里已经有了答案: Swift 4 Cannot convert value of type '[String : AnyObject]?' to expected argument ty
我将我的代码从 Swift 3 转换为 Swift 4 但出现此错误: Type 'NSAttributedStringKey' has no member 'foregroundColorNSAtt
我对 NSAttributedStringKey 和 UITextView 有疑问 事实上,我正在尝试这样做: 这是理论上应该有效的代码 class ViewController: UIViewCon
将我的代码从 swift 3 转换为 4 并得到错误无法将类型“[String:Any]”的值转换为预期的参数类型“[NSAttributedStringKey:Any]” 在线 attributed
这个问题在这里已经有了答案: Cannot convert value of type '[String : AnyObject]?' to expected argument type '[NSA
这个问题在这里已经有了答案: Swift 4 attributedString get typing attributes (3 个答案) 关闭 5 年前。 我曾经能够生成 NSAttributed
iOS 部署目标:iOS 9.3,基础 SDK:最新的 iOS (iOS 11.0),Xcode 9 测试版 4, swift 4 以下代码在 Swift 3、Xcode 8 中构建和运行:
我是一名优秀的程序员,十分优秀!