在 ios 7 中替换弃用的 sizeWithFont:minFontSIze:actualFontSize

2024-01-04

在 iOS 6 中我使用的是这种方法:

[self.handText sizeWithFont:font 
 minFontSize:10.0f 
 actualFontSize:&maxFontSize 
 forWidth:handWidth/2 
 lineBreakMode:UILineBreakModeClip];

Xcode 5 说'sizeWithFont:minFontSIze:actualFontSize:forWidth:lineBreakMode:' is deprecated:first deprecated in iOS 7

现在我是这样实现的:

[self.handText sizeWithAttributes:@{NSFontAttributeName:font} 
 minFontSize:10.0f 
 actualFontSize:&maxFontSize 
 forWidth:handWidth/2 
 lineBreakMode:NSLineBreakByClipping];

这里 xcode 抛出另一个警告:'Instance method -sizeWithAttributed:minFontSize:forWidth:lineBreakMode:'not found(return type defaults to 'id')

谁能帮我解决这个警告。


请改用此辅助方法:

-(CGSize)frameForText:(NSString*)text sizeWithFont:(UIFont*)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode  {

    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
    paragraphStyle.lineBreakMode = lineBreakMode;

    NSDictionary * attributes = @{NSFontAttributeName:font,
                                  NSParagraphStyleAttributeName:paragraphStyle
                                  };


    CGRect textRect = [text boundingRectWithSize:size
                                         options:NSStringDrawingUsesLineFragmentOrigin
                                      attributes:attributes
                                         context:nil];

    //Contains both width & height ... Needed: The height
    return textRect.size;
}

如果您需要同时支持 iOS 6 和 iOS 7,请像这样使用:

#ifdef __IPHONE_7_0

     titleSize = [self frameForText:self.titleLabel.text sizeWithFont:self.titleLabel.font constrainedToSize:CGSizeMake(labelMaxWidth,self.titleLabel.font.lineHeight) lineBreakMode:self.titleLabel.lineBreakMode ];

     subtitleSize = [self frameForText:self.subtitleLabel.text sizeWithFont:self.subtitleLabel.font  constrainedToSize:CGSizeMake(labelMaxWidth,self.subtitleLabel.font.lineHeight) lineBreakMode:self.subtitleLabel.lineBreakMode];

#else


     titleSize = [self.titleLabel.text sizeWithFont:self.titleLabel.font
                                        constrainedToSize:CGSizeMake(labelMaxWidth,self.titleLabel.font.lineHeight)
                                            lineBreakMode:self.titleLabel.lineBreakMode];

     subtitleSize =   [self.subtitleLabel.text sizeWithFont:self.subtitleLabel.font
                                              constrainedToSize:CGSizeMake(labelMaxWidth,self.subtitleLabel.font.lineHeight)
                                                  lineBreakMode:self.subtitleLabel.lineBreakMode];
#endif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ios 7 中替换弃用的 sizeWithFont:minFontSIze:actualFontSize 的相关文章

  • WKWebView不加载https URL?

    我有一个 WKWebView 应该加载以下网址 https buchung salonmeister de place offer details page id 907599 venueId 301655 她是我使用的代码 import
  • 我何时以及为什么要使用 ARC 将局部变量声明为 __weak?

    Mike Ash 撰写了 ARC 简介 http www mikeash com pyblog friday qa 2011 09 30 automatic reference counting html他在那里介绍了这样的内容 weak
  • iPhone - 如何通过基于度数的位置获取方向

    首先 我在班级中实现了位置管理器功能 并且运行良好 并为我提供了当前位置 从那个位置我得到了如何获得位置度here http www switchonthecode com tutorials getting your location i
  • 按钮操作在 iPhone 中不起作用?

    我有一个 iPhone 应用程序 我在其中添加一个自定义视图 尽管有一个导航栏视图 在正常情况下 我隐藏该自定义视图 并在需要时取消隐藏它 现在 我正在向该自定义视图添加一个具有操作的按钮 但是当我点击它时 没有任何操作起作用 任何人都可以
  • 如何在松开按钮后立即看到新的视频层?

    我有一个应用程序 用户可以按住按钮来拍摄视频 然而 当他们这样做时 带有视频播放的新图层不会立即出现 相反 有一个非常短的延迟 在用户松开按钮后 您可以看到相机仍然显示相机所看到的内容 延迟结束后 视频立即显示并开始播放 但是 我怎样才能使
  • 如何在 iPhone 应用程序中使用正则表达式以 , (逗号)分隔字符串

    我必须读取包含三列的 csv 文件 在解析 csv 文件时 我得到了这种格式的字符串克里斯托弗 巴斯 为心爱的国家哭泣 期末论文 电子邮件受保护 cdn cgi l email protection 我想将三列的值存储在一个数组中 所以我使
  • iphone sdk - 调用视图的超级视图的视图控制器的方法

    你好 我如何在当前视图中调用当前视图的超级视图的视图控制器中实现的方法 你能帮我吗 谢谢 通常这是通过代表完成的 让您的视图接口定义一个协议和对某个委托的引用 然后让你的父视图控制器实现这个协议 然后父母会这样做 someView fooD
  • 使用 iOS 7 检索设备 WiFi MAC 地址

    我们的应用程序使用设备 WiFi MAC 地址来唯一标识设备 根据苹果文档 https developer apple com news id 8222013a我们将开始使用 UIDevice 的identifierForVendor 属性
  • Cocos2D复杂动画[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 Cocos2D 将我的游戏从 Flash 移植到 iOS 我现在有一个工作版本 我很高兴我
  • 创建自定义 MCBrowserViewController

    有没有办法创建一个UITableView包含在中找到的相同信息MCBrowserViewController 我当前的代码只允许推送与我的应用程序设计不同的标准视图 self browserVC MCBrowserViewControlle
  • 更新到 1.11.0 后,自动完成功能要求您在 iOS 中单击两次

    使用 jQuery 2 1 0 和 jQuery ui 1 11 0 在 iOS 7 iPhone 和 iPad Mini 中测试 适用于 Android 和常规浏览器 问题 我们最近从 jQuery UI 1 10 0 升级到 1 11
  • NSString keepCount 是 2147483647 [重复]

    这个问题在这里已经有答案了 可能的重复 NSString 保留计数 https stackoverflow com questions 1390334 nsstring retain count Objective C NSString 属
  • 如何在我的应用程序中添加应用内购买

    我想在我的应用程序中使用应用程序购买应用程序 但我不知道如何执行此操作 任何人都可以帮助我如何做以及源代码在哪里 给我链接或代码 这里有一堆链接 应用内购买编程指南 http developer apple com iphone libra
  • NSString stringWithContentsOfFile 失败,错误代码似乎错误

    我正在尝试将文件加载到字符串中 这是我正在使用的代码 NSError error nil NSString fullPath NSBundle mainBundle pathForResource filename ofType html
  • 错误域=kAFAssistantErrorDomain 代码=209“(空)”

    我面临着一个问题SFSpeechRecognizer 启动应用程序几秒钟后 我开始收到错误消息 错误域 kAFAssistantErrorDomain 代码 209 空 和 错误 域 kAFAssistantErrorDomain 代码 2
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • UITableViewCell显示多种字体

    我想在 uitableviewcell 中以类似于 iPhone 地址簿的不同字体显示两个单词 例如 约翰Buchanan 您应该使用两个 UILable 或者您可以使用OH属性标签 https github com AliSoftware
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • 未提供有效的身份验证

    我被困在这个步骤2 4wiki https dev loganalytics io documentation 1 tutorials direct api 在上一步中 我获得了一个有效的令牌 为什么我收到 未提供有效的身份验证 我添加了一
  • 查找仅限于多个范围的重复项 - pandas

    假设我们的问题可以这样简化 df pd DataFrame df C rows C1 C2 C3 C2 C1 C2 C3 C1 C2 C3 C4 C1 df values customer1 4321 1266 5671 customer2
  • 找不到 MSBuild.exe、cmd.exe

    我最近安装了 Visual Studio 2017 MSBuild exe 不应该附带吗 bash 脚本之一正在调用它 但找不到任何内容 这是 build bat 中产生错误的部分 您可以看到整个文件here https github co
  • OpenCV Docker 多阶段构建 - 无法安装预构建源

    我正在尝试构建一个 Docker 映像 其中包括具有 CUDA 和 GPU 支持的非常特殊的 OpenCV 配置 构建成功 如果我make install它来自构建图像的相同上下文 它可以正常工作 当我尝试使用多阶段构建以避免保留构建 Op
  • Spacy Entity Linking 模型的训练时间

    我正在尝试使用 Wikidata 和 Wikipedia 中的脚本来训练 Spacy Entity Linking 模型https github com explosion spaCy tree master bin wiki entity
  • C# 匿名类型在 C# 7 中是否多余

    由于 C 7 引入了值元组 是否存在比元组更适合的有意义的场景 例如 以下行 collection Select x i gt x i Where y gt arr y i f y x ToArray 制作以下行 collection Se
  • 当用户返回后台应用程序时如何触发功能?

    例如 用户打开应用程序 按主页按钮 然后再次返回该应用程序 当用户导航回应用程序时 有什么方法可以触发某些功能吗 例如 当用户返回应用程序时自动加载视图对象 这个问题适用于 Android 和 iOS 在项目中根据您的喜好使用以下内容App
  • ggpattern na 值后缺少模式

    使用 ggpattern 如何不显示 NA 值的模式 但在该点之后继续模式 当我运行此代码时 NA 值之后没有更多模式 尽管应该有 library swimplot library ggpattern library tidyverse d
  • “清理”用户提交的 Javascript - 所以它仍然有效!

    我计划在我的网站中设置一个功能 用户可以提交 HTML CSS 和 JS 然后将其 实时 生成为完整的 HTML 工作页面 其他用户将能够看到这一点 这些页面需要有有效的 Javascript 我知道这本身就是一个相当大的安全缺陷 但该功能
  • Excel LEN() 函数对长度超过 20 个字符的数字返回 5

    当我的数字超过 20 个字符时 Excel 中的 LEN 函数返回 5 我已经在桌面和移动设备上尝试过此操作 并得到相同的结果 当我使用 评估公式 时 它显示它从 LEN 100000000000000000000 20个零 到 5 如果有
  • 驱动程序的卸载按钮被禁用

    我已经为虚拟设备编写了相当简单的第一个驱动程序 它还有一个 inf 我使用安装驱动程序开发者大会 http support microsoft com kb 311272 它安装良好且功能正常 但我的问题是当我尝试卸载它时 devcon e
  • 使用语义发布获取下一个标签版本

    您好 我在我的存储库中使用语义发布进行版本控制 在我的 Gitlab 中 当我将分支与 master 合并时 我的标签会根据提交而增加 并且工作正常 有什么方法可以让我获得合并之前的 下一个标签版本 我想在合并之前将下一个版本写入文件 尝试
  • 不同基于 C# 的服务之间的通信

    有没有办法在两个不同的服务之间进行通信 我有一项已经运行的服务 有没有办法创建第二个服务 可以附加到第一个服务并向其发送和接收日期 我还想从控制台应用程序访问 Windows 服务并附加到它 是否可以 您可以尝试使用以下方法来实现 IPC
  • 检测语音转文本中的填充词

    我使用 Google Speech API 进行语音到文本的转换 但是 它会过滤掉填充词 例如 呃 嗯 啊 等 我有什么办法可以获得包含填充词的文本吗 使用更灵活的API 如Kaldihttp kaldi asr org http kald
  • apn_sender 和 Rails 3

    我有一个项目需要从服务器向设备发送通知 我不知道如何以及从哪里开始 首先创建表或其他 因为我是 Ruby on Rails 的新手 我已经按照 apn sender 教程进行操作 但它不起作用并且在启动时总是出错 有没有为 Rails 3
  • do.call 构建并执行 data.table 命令

    我有一个小data table代表每个测试单元格的一条记录 AB 测试结果 并且我想添加更多的列来将每个测试单元格与其他测试单元格进行比较 换句话说 我想要添加的列数将取决于相关 AB 测试中有多少个测试单元 My data table好像
  • Python SocketServer 可在本地主机上运行,​​但不能在服务器上运行

    下面是我当前正在使用的代码 usr bin python print Content type application print n n import SocketServer import cgitb cgitb enable clas
  • 角度动画:为父元素和子元素添加动画

    我创建了一个元素 div parent 以及效果很好的 Angular 动画 当我向其中添加一个子元素并尝试同时为子元素设置动画时 其中一个动画最终不会运行 它只是捕捉到新状态 堆栈闪电战 https stackblitz com edit
  • PyBrain 中的 _convertToOneOfMany

    我遵循 PyBrain 教程使用前馈神经网络进行分类 http pybrain org docs tutorial fnn html并想建立我自己的分类器 我不明白怎么办 convertToOneOfMany修改输出 为什么初始操作会all
  • 在 ios 7 中替换弃用的 sizeWithFont:minFontSIze:actualFontSize

    在 iOS 6 中我使用的是这种方法 self handText sizeWithFont font minFontSize 10 0f actualFontSize maxFontSize forWidth handWidth 2 lin