首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于游乐场和实际项目上的相同输入,Swift boundingRect返回不同的值

对于游乐场和实际项目上的相同输入,Swift的boundingRect方法返回不同的值可能是由于以下几个原因:

  1. 字体差异:boundingRect方法是用于计算文本在给定字体和约束条件下所占据的矩形区域。在游乐场中,可能使用的是不同的字体或默认字体,而在实际项目中,可能使用的是自定义字体或者其他字体库,这可能导致计算结果不同。
  2. 文本内容差异:boundingRect方法的计算结果也受到文本内容的影响。在游乐场中,可能使用的是简单的测试文本,而在实际项目中,可能使用的是真实的、复杂的文本内容,这可能导致计算结果不同。
  3. 约束条件差异:boundingRect方法的计算结果还受到约束条件的影响,例如文本的最大宽度或高度。在游乐场中,可能使用的是默认的约束条件,而在实际项目中,可能使用的是自定义的约束条件,这也可能导致计算结果不同。

为了解决这个问题,可以尝试以下几个方法:

  1. 确保在游乐场和实际项目中使用相同的字体,可以通过指定字体名称和大小来实现。
  2. 确保在游乐场和实际项目中使用相同的文本内容,可以通过复制粘贴游乐场中的测试文本到实际项目中来实现。
  3. 确保在游乐场和实际项目中使用相同的约束条件,可以通过设置相同的最大宽度或高度来实现。

总之,要保证在不同环境下获得相同的boundingRect计算结果,需要确保字体、文本内容和约束条件的一致性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WWDC 2018年十大视频评论

您还可以输入一些数据来测试预测准确性。如果您对自己制作模型感到满意,请将其导出。最后,将新模型拖到项目中。您可以在Swift命令行REPL中macOS Mojave训练模型。...- Apple Miles软件工程经理Chris Miles 在会话期间,还会调试macOS应用程序视图 - 这次,检查View Debugger中元素 - 使用相同技巧来打印视图和约束。...TJ Usiyan概述了更高级Playground功能。特别是,新自定义游乐场显示转换器允许您在实时REPL类似的结果内联视图中显示您自己自定义。他还强调了如何在项目中支持自己框架。...在Objective-C代码中使用无名类别来隐藏Swift中不需要东西,或者将项目移动隐藏到实现文件中。 迁移到Swift 4,它也针对更快构建进行了优化。...注意“Swift 3 @objc Inference”,因为它可能“打开”。删除条目将其恢复为默认。 这个讲话充满了提示。您可能需要重复查看。Xcode构建过程非常复杂,特别是对于新手。

3.3K20

Swift进阶一:Swift简介

Swift语言引入了协议、协议扩展、泛型等新特性,因此使用Swift语言可以很好地面向协议编程;Swift语言将函数闭包提升为语言一等公民,函数可以作为一个变量、可以作为其他函数参数、作为其他函数返回等来传递...同时,Swiftprotocol还可以用于类型,比如结构体枚举。 Objective-C中协议相对于Swift,则显得寒酸很多。...7,函数闭包 在Swift中,函数是一等公民,可以直接定义函数类型变量,可以将函数作为其他函数参数来传递,也可以将函数作为其他函数返回。这些特性可以让我们在Swift中进行函数式编程。...3,将光标移到当前行开始处 Control+A 4,将光标移到当前行结束处 Control+E 实际,REPL在应用开发中并没有什么卵用,我们主要是使用REPL在学习过程中随时了解语言某个语法...Playground介绍 playground,翻译成游乐场,顾名思义,playground设计思想目的就是以游戏态度来学习Swift,让人人都能够愉快地学习Swift编程。

2.8K20

代码开发工具Xcode

,模拟器,最新SDK和数百个强大功能: 创新工具可帮助您创建出色应用 •Swift是一种安全,快速现代***性编程语言 •游乐场是一种有趣实验方式,并与Swift代码交互 •Interface...,其中包括: - 与功能指针统一关闭 - 元组多个返回 - Structs作为支持方法,扩展,协议类型 - 强大协议,可以在您代码库中扩展功能 - 功能编程模式,包括地图过滤器 Interface...Builder可以轻松设计您界面而无需代码 •故事板让您可以在应用程序中安排屏幕完整流程 •在设计画布中查看呈现自定义控件 •为不同设备,屏幕尺寸方向自定义您界面 •StackViews可以很容易地理解界面每个部分布局...•从GUI设计直接创建与相关源代码连接 专业编辑器调试器保持您代码前端中心 •点击几键,Open Quickly将立即打开项目任何文件 •消息气泡会在您代码旁边显示错误,警告其他问题...•数据提示通过将鼠标悬停在代码上来显示变量 •调试时,快速查看变量以查看实际颜色,贝塞尔曲线路径,图像等 •第三方应用程序扩展可以向源编辑器添加新功能 测试驱动开发正确 •使用测试导航器只需点击即可添加

1.7K10

IOS-swift5.1快速入门之旅

如果你用C或Objective-C编写代码,这个语法看起来很熟悉 - 在Swift中,这行代码是一个完整程序。您无需为输入/输出或字符串处理等功能导入单独库。...您可以使用for- in通过提供一对用于每个键值对名称来迭代字典中项目。字典是无序集合,因此它们以任意顺序迭代。...覆盖超类实现子类override方法标记为 - 意外地覆盖方法,而override不是由编译器检测为错误。编译器还检测具有override该方法方法实际不覆盖超类中任何方法。...实际,在没有有意义原始情况下,您不必提供原始。...枚举情况另一个选择是使与案例相关联 - 这些在您创建实例时确定,并且对于枚举案例每个实例它们可以不同。您可以将关联视为与枚举案例实例存储属性相似。

2K20

专为苹果系统设计精美可视化图表 | 开源日报 No.219

,是跨平台 MPAndroidChart 在苹果设备实现。...该项目提供了以下主要功能优势: 支持 iOS、tvOS macOS 平台 使用 Swift 编写,可在 Swift ObjC 项目中高效使用 可以节省开发时间,因为学习曲线只需一次,并且代码在不同平台上保持相似性...提供详细使用说明第三方教程链接(视频教程、博客文章) 支持 CocoaPods、Carthage Swift Package Manager 安装方式 该库还提供了 Realm.io 可选绑定...该项目提供了一套用于 Apple 特定 UEFI 驱动程序附加功能库,包括苹果磁盘映像加载支持、苹果键盘输入聚合、PE 映像签名验证等。...主要功能优势包括: 支持登录已有的 Epic Games、GOG 或 Amazon 账户 安装、卸载、更新、修复移动游戏 导入已安装游戏 在线玩 Epic games [macOS 依赖于反作弊软件

9310

Qt官方示例-拖放机器人

我们将首先看Robot类,以了解如何组装不同部分,以便可以使用QPropertyAnimation分别旋转动画化各个部分,然后我们将看ColorItem类,以演示如何在项目之间实现拖放。...dropEvent(),当拖放元素被拖放到一个项目时,dropEvent()将被自动调用。...RobotHead,RobotTorso以及RobotLimb定义实现几乎相同。我们这里只详细介绍RobotHead。...因此,其boundingRect()实现可以返回QRectF,而其paint()函数则不执行任何操作。...此代码段显示了两个在头部缩放旋转上运行动画。这两个QPropertyAnimation实例仅设置对象,属性以及各自开始结束。   所有动画均由一个顶级并行动画组控制。

4.7K41

Xcode 10

Xcode 10包含为所有Apple平台创建出色应用所需一切。现在XcodeInstruments在macOS Mojave新Dark Mode中看起来很棒。...Xcode支持直接使用多个协作平台,包括: GitHubGitHub企业版 Bitbucket CloudBitbucket Server GitLab.comGitLab自我托管 您团队在云中或组织内自托管服务器一起工作从未如此简单...Xcode包含模板,因此您可以使用Apple使用相同工具构建仪器。您工具可以轻松地作为项目的一部分进行共享,并由其他团队成员或公共框架用户安装。...对于持续集成设置,您可以启动许多不同模拟设备类型,以便从头到尾运行完整测试工具。或者,为了尽可能快地完成测试,Xcode可以生成单个模拟设备许多克隆,并在一小部分时间内完成所有测试。...直接在游乐场内训练您模型,以及将在您应用中使用该模型代码。使用您在应用中使用相同Swift语言,在超快工作流程中训练,实验优化您机器学习代码。

3K20

WWV 2018年十大必看视频

您还可以输入一些数据来测试预测准确性。如果您对自己制作模型感到满意,请将其导出。最后,将新模型拖到项目中。您可以在Swift命令行REPL中macOS Mojave训练模型。...- Apple Miles软件工程经理Chris Miles 在会议期间,还会调试macOS应用程序视图 - 这次,检查View Debugger中元素 - 使用相同技巧来打印视图和约束。...在Objective-C代码中使用无名类别来隐藏Swift中不需要东西,或者将项目移动隐藏到实现文件中。 迁移到Swift 4,它也针对更快构建进行了优化。...注意“Swift 3 @objc Inference”,因为它可能“打开”。删除条目将其恢复为默认。 这个讲话充满了提示。您可能需要重复查看。Xcode构建过程非常复杂,特别是对于新手。...请注意内在内容大小systemLayoutSizeFitting实际内容之间区别。可以通过其内容文本或图像来了解前者视图。后者从引擎中获取大小信息。

2.7K20

Swift基础 通用

注意 在所有三个函数中,ab类型必须相同。如果ab不是同一类型,则无法交换它们Swift 是一种类型安全语言,不允许(例如)String类型变量类型Double变量相互交换。...堆栈是一组有序,类似于数组,但与SwiftArray类型相比,操作集更受限。数组允许在数组任何位置插入删除新项目。然而,堆栈只允许将新项目附加到集合末尾(称为将新推送到堆栈)。...下面的插图显示了堆栈推送弹出行为: 堆栈目前有三个。 第四个被推到堆栈顶部。 堆栈现在包含四个,最近一个在顶部。 堆栈中顶部项目被弹出。 弹出一个后,堆栈再次包含三个。...如果所有项目匹配,该函数返回true布尔,如果它们不匹配,则返回false。 要检查两个容器不必是相同类型容器(尽管可以),但它们必须容纳相同类型物品。...如果它们包含不同数量项目,则无法匹配,并且函数返回false。

8800

Figma 编组功能,比你想象要复杂得多

最近做个人开源编辑器项目,实现了 Figma 一样编组功能,期间踩了不少坑,大家分享一下。 阅读本文需要一些前置知识,所以你会看到很多文章引用。一时半会可能看不明白,建议先收藏。...矩阵逆矩阵相乘为单位矩阵,所以我们可以求出 B 逆矩阵,往等式两边做左乘: B' = INVERT(B) B' * B * A = B‘ * C 则 A = B' * C 所以矩阵 A 为矩阵...()), ), ); 首先我们看看这个 boundingRect 是不是父节点宽高相同,如果相同,说明图形没有移出界,就不用更新父节点了,直接结束。...首先用之前文章讲过如何通过拖拽不同控制点,计算图形缩放后 transform,拿到需要应用矩阵变换。 scaleTf。...对编组支持看起来简单,实际因为父子关联原因,影响很广,复杂度很高。

5610

Swift5.7 扩展不透明类型(some)到泛型参数

介绍Swift泛型语法是为了类型通用性设计,这种通用性允许在函数输入输出时,使用复杂类型集合来表达,前提是类型必须前后一致。...这两个类型都需要遵守Sequence协议,而且,where条件语句决定两个序列中元素也必须是相同类型。最后, 该函数返回是Sequence1中元素类型组成数组。...这实际比它本身看起来更复杂(会比平常调用理解多一层, 当前参数寻找过程是:v1 -> V1 -> View, 而非 v1 -> View)。...对返回结果来说,又可以使用不透明类型(opaque result type)some来隐藏实际返回,仅通过它符合协议来描述它。...P` could be either String or Int可以看出当前提议规则生成是支持相同类型泛型,如果支持可变泛型,则函数允许不同类型输入,前后不一致无法兼容。

2.9K141

2.Swift初体验

从Xcode6开始出现(Swift开始出现) 翻译为:操场/游乐场 对于学习Swift基本语法非常方便 所见即所得(快速查看结果) 语法特性发生改变时,可以快速查看 Playground Swift最基本语法变化...但是不建议一行多条语句 Swift打印语句:print(打印内容) 常见注释 单行注释 Swift注释与C 语言注释非常相似。...单行注释以双正斜杠(//)作为起始标记 // 注释内容 多行注释 其起始标记为单个正斜杠后跟随一个星号/* 终止标记为一个星号后跟随单个正斜杠*/ /* 这是一个, 多行注释 */ 与 C 语言多行注释不同...,Swift 多行注释可以嵌套在其它多行注释之中 /* 这是第一个多行注释开头 /* 这是第二个被嵌套多行注释 */ 这是第一个多行注释结尾 */ 文档注释 Swift中添加文档注释较为简单...可以为方法或者属性添加文档注释 /// 打电话给某人 func callPhone(phoneNum : String) { print("打电话给\(phoneNum)") } 分组注释 Swift

55140

TensorFlow游乐场及神经网络简介

为了将一个实际问题对应到平面上不同颜色点划分,还需要将实际问题中实体,比如上述例子中零件,变成平面上一个点①。这就是特征提取解决问题。...一般可以认为当输出离阈值越远时得到答案越可靠。 在输入输出层之间神经网络叫做隐藏层,一般一个神经网络隐藏层越多,这个神经网络越“深”。...边类似,当节点输出绝对越大时,颜色越深④。下面将具体解读输入层x1所代表节点。从上图中可以看到x1这个节点区分平面就是y轴。...不同实体可以提取不同特征向量,本书中将不具体介绍。本文假设作为神经网络输入特征向量可以直接从数据集中获取。 2.定义神经网络结构,并定义如何从神经网络输入得到输出。...④类似边上颜色,TensorFlow游乐场网站中,点颜色也有黄色(文中浅色部分)蓝色(文中深色部分),边上颜色类似,黄色越深表示负得越大,蓝色越深表示正得越大。

65630

架构之路 (七) —— iOS AppSOLID原则(一)

所有 Core Data 设置都在那里发生,这听起来根本不像是一个单一职责。 如果您想在不同项目中重用相同 Core Data 设置,您会发现自己使用是代码片段而不是整个文件。...{ fatalError("Unresolved error \(error), \(error.userInfo)") } } } 初始设定项中参数定义容器是内存中临时容器还是具有存储在设备数据库文件实际容器...DailyExpensesView.swift MonthlyExpensesView.swift 也是如此。除了使用报表数据源类之外,它们也相同。...对于其余原则,您将以不同顺序浏览它们,以使它们更易于应用。请记住,当您重构现有项目时,按顺序遵循 SOLID 并不重要。正确地做这件事很重要。...对于这个应用程序,你需要做就是让 saveEntry(title:price:date:comment:)返回一个布尔来确认它是否保存了该

4.7K10

教您玩转linux0001 - 先跑起来 🥊

比如win系统中cmd、powershell、wezTerm mactermimal、iterm2 linux 终端 我们所学这些远程登录到linux云都好使 玩就是云端东西 可以越过图形界面...纯终端 进入终端 这里桌面进入是相同 都是进入了终端 终端上云就是这种感受 爽~ 酷 仿佛打开了一个黑色异世界 这是一切开始地方!!! 实际这异世界也是很多人工作生活地方!!!...别再惹 python了 ctrl + c 结束 先离开python游乐场一会儿 退出 Python 输入quit尝试退出游乐场 游乐场真的有提示!...不过没事 什么时候想去 游乐场都会再开 重进游乐场 重新输入 python 就可以从 shell 再次进入 三个大于号对应 python 游乐场 进了 python 游乐场 还可以再用 quit...() 退出 按方向键↑ 也可以得到之前命令 进入退出 反复练习 或者 ctrl+d退出游乐场 总结 这次我们, 了解了 Python 进入了 Python 退出了 Python 这并不难 这就是我们对于

48200

Rego Playground:新特性

特性:Kubernetes、Envoy更多例子 任何设计用户界面(或者任何软件项目/产品)的人可能都很熟悉“白板”问题:所有的设计都假定系统装载了数据。...当你发布了你策略,游乐场将显示以下步骤: 下载并在本地运行OPA 配置OPA以使用你发布策略 使用来自游乐场输入测试策略 从同一浏览器窗口发布对策略任何编辑都将传播到配置为使用游乐场OPA...在游乐场初始版本中,我们不支持在数据下加载任意外部JSON。...这主要是为了让UI尽可能简单,而且从技术讲,你可以在策略本身中定义任何JSON--在策略中定义对JSON引用与在OPA中缓存原始JSON引用是相同。...因此,虽然可以在游乐场内试验上下文感知策略,但它有点不明显。在最新版本中,现在有一个空数据“DATA”面板(以及输入“INPUT”输出“OUTPUT”),让你可以加载数据下任意JSON: ?

1.1K10

汇编内存

# 汇编内存 你已经开了汇编学习旅程,并且在前几章中你已经学习了汇编调用一些黑魔法,你现在知道了,当一个函数被调用,他参数返回是如何传递。...这与您在 image lookup 命令中看到常规输出不同,它仅显示函数相对于可执行文件偏移量,也称为实现偏移量。 寻找函数地址时,区分加载地址可执行文件中实现偏移很重要,因为它会有所不同。...让我们来看看实际情况。 删除 Registers 项目所有断点。 生成并运行项目。 现在,让程序暂停。...像以前一样,将相同十六进制写入 R9 寄存器: register write $r9 0x0123456789abcdef 输入以下内容,以确认您已设置 R9 寄存器成功: p/x $ r9 输入以下内容...看一下 RIP 寄存器位置,该位置应指向函数最开始。 对于项目,aBadMethod 起始地址始于 0x100008910。往常一样,您地址可能会有所不同

1.2K20

汇编寄存器规则

“在 x64 中调用函数时,寄存器方式使用遵循非常特定规则。这决定了函数参数应该去哪里以及函数完成时函数返回应该在哪里。...这意味着,一旦离开函数开始,就不能再假定这些寄存器将保存您要观察期望,除非您实际查看汇编代码看看它在做什么。 使用此调用规则浏览寄存器会严重影响您调试(断点)策略。...这意味着您不会看到这些寄存器有太多更改,因为在调用获取寄存器函数时它们可能具有相同(或相似)。...幸运是,register read 命令依然是可以使用。 其次,Swift对于 OC 并不是动态。事实,有时候最好假设 Swift 像 C 语言一样。...这意味着当 Swift 调用函数时,先前分配给选择器 RSI 寄存器实际就是函数第二个参数。好了,足够理论 - 是时候将其付诸实践了。

2.4K50

Swift基础 嵌套

Swift为您处理捕获所有内存管理。 注意 如果您不熟悉捕获概念,请不要担心。下文在《捕捉价值观》中对此进行了详细解释。 函数中引入全局嵌套函数实际是闭包特殊情况。...因为闭包主体包含一个返回’ Bool ‘表达式(‘ s1 > s2 ‘),所以没有歧义,并且’ return ‘关键字可以被省略。 运算符方法 实际,有更短方法来编写上面的闭包表达式。...例如,SwiftArray类型有一个map(_:)方法,该方法以闭包表达式为单个参数。为数组中每个项目调用一次闭包,并返回项目的替代映射(可能是其他类型)。...您通过在传递给map(_:)闭包中编写代码来指定映射性质返回类型。 将提供闭包应用于每个数组元素后,map(_:)方法返回一个包含所有新映射新数组,顺序与原始数组中相应相同。...这是因为函数闭包都是引用类型。 每当您将函数或闭包分配给常量或变量时,您实际都会将该常量或变量设置为对函数或闭包引用。

11000

Swift解读专题一——Swift2.2语言预览

时,就代表条件为真,在Swift语言中则不同,if选择语句中条件必须为Bool类型,因此,对于某些可以为空Swift中提供了optional类型,这种类型相当于对其他实际类型进行了包装,如果有...8 add(5, param2: 3) 我比较了Swift语言与Objective-C、Java语言函数特点:         Objective-C实际并没有函数重载概念,不同参数函数实际拥有不同函数名...Java不同函数采用重载方式,这样效果是,相同函数名,参入不同参数则会执行不同操作,是不同两个方法,这样有点是使代码十分简洁,然而对开发者来说并不友好,开发者在开发时不能便捷看出每个参数意义用法...在Swift中同样也有setget方法,只是这里setget方法与Objective-C中setget方法有很大不同,Objective-C中getset方法是截获了属性存取过程,在其中加入额外其他操作...,Swiftsetget方法原理上将属性存取与其他逻辑操作进行了分离,抽象出了一种计算属性,示例如下: class MyClass {     var count:Int     //实际并不存在

2K20
领券