为什么iOS坐标系很难理解??只有我?

2023-12-02

我正在研究iOS的UIView! 我发现我无法理解边界是如何工作的。

For example, my code

请运行此代码...并看到红色框在移动。 红框升起来了!白色的根视图是静态的!

为什么!?为什么红框会上升! ??请让我知道OTL!

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let childView : UIView = UIView(frame: CGRect(x: 50, y: 50, width: 200, height: 200) )
        childView.backgroundColor = UIColor.red

        self.view.addSubview(childView)

    }


    override func viewDidAppear(_ animated: Bool) {

        UIView.animate(withDuration: 8, animations: {

          // I cannot unnerstand how bounds works!!
          self.view.bounds = CGRect(x: 0, y: -300, width:self.view.bounds.width, height: 700)

          //I can understand how frame works
          self.view.frame = CGRect(x: 200, y: 0, width: self.view.bounds.width, height: self.view.frame.height)
      })

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
    }

}

I read 本文,但我无法理解

CompositedPosition.x = View.frame.origin.x - Superview.bounds.origin.x;
CompositedPosition.y = View.frame.origin.y - Superview.bounds.origin.y;

这里!这是正确的(根据我的测试,这是正确的。)但是,我不知道为什么。为什么不是“View.frame.origin.x + Superview.bounds.origin.x”?

如果我们改变视图边界的原点并且视图在屏幕上移动,那么在原点(或位置)的角度上,“边界”和“框架”之间有什么区别?除了简单地反向操作之外还有什么区别吗?


基本上,UIView 的边界是矩形,表示为相对于其自身坐标系 (0,0) 的位置 (x,y) 和大小 (宽度,高度)。

UIView 的框架是一个矩形,表示为相对于它所包含的父视图的位置(x,y)和大小(宽度,高度)。

请点击此链接以获取清晰的示例。可可:框架和边界有什么区别?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么iOS坐标系很难理解??只有我? 的相关文章

  • 查找已用应用程序名称的捆绑包/开发人员

    我正在尝试将应用程序上传到应用程序商店并收到以下错误 很容易理解 The App Name you have entered has already been used 该应用程序不在 iTunes 上 有什么方法可以找出谁拥有该应用程序或
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • 以编程方式从底部裁剪图像

    我正在开发自定义相机应用程序 一切进展顺利 但我在从底部裁剪图像时遇到了问题 即 裁剪后的图像与原始图像具有完全相同的宽度 但高度将为原始图像的 1 3 并且必须从底部开始 斯威夫特3解决方案 func cropBottomImage im
  • 沙盒尝试恢复消耗性 IAP

    我一直在尝试在 iOS 上测试一些消耗性 IAP 但遇到了一个奇怪的错误 弹出一条警报 其中包含以下文本 此应用内购买已被购买 它将恢复为 自由的 环境 沙盒 我已经检查过 并且确定我的 IAP 可以在 iTunesConnect 中使用
  • 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件或将静态库加入现有二进制文件 (IOS)

    这是我第一次在 stackoverflow 上提问 我很绝望 我的任务是加载 dylib 或将静态库加入到 IOS 设备的现有可执行文件中 我将使用static void attribute constructor initialize v
  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • iOS 防止计时器 UILabel 在数字变化时“晃动”

    我有一个UILabel它以以下格式显示计时器的输出MM ss SS 分 秒 厘秒 但是随着厘秒宽度的变化 它从左向右 摇动 例如 11 比 33 窄 有什么办法可以减轻这种情况吗 我尝试过将其居中 给它固定的宽度 但它们似乎没有帮助 从iO
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • ios - 在哪里放置 s.static_framework = true

    我在 CocoaPods 中的级别为 0 当我使用pod install有一个错误说 The Pods App target has transitive dependencies that include static framework
  • 如何将相机中的图像保存到 iPhone 图库中的特定文件夹?

    嘿 我是 iPhone 新手 最近我一直在尝试制作一个应用程序 基本上 我想要做的是 如果用户将从相机捕获任何图像 那么它应该保存在设备库中 我知道如何将照片保存在图库中 它对我有用 但我无法将所有捕获的图像保存到设备图库中的特定文件夹 例
  • ios7 navigationController PushViewController 动画错误

    看来我在 navigationController PushViewController 方法中发现了一个错误 为了重新创建它 我采用了示例主详细信息项目并对 didSelectRow method void tableView UITab
  • 为什么在授予用户权限时,UIUserNotificationType.None 在当前设置中返回 true?

    我正在编写一种方法来检查当前用户设置是否包含某些通知类型 当检查当前设置是否包含 UIUserNotificationsType None 时 无论授予权限还是拒绝权限 它都会返回 true 有谁知道这是为什么吗 func register
  • Swift Codable 将空 json 解码为 nil 或空对象

    这是我的代码 class LoginUserResponse Codable var result String var data LoginUserResponseData var mess String public class Log
  • iPhone UINavigationBar 使用 [UINavigationBar 外观] 更改所有控制器的字体样式

    我知道我可以单独更改导航栏的字体 如本答案所述 更改导航栏的字体 https stackoverflow com questions 5832036 change the navigation bars font 目前我正在使用一种更全局的
  • 错误域=AVFoundationErrorDomain代码=-11814“无法记录”

    它不断给我错误 错误域 AVFoundationErrorDomain代码 11814 无法记录 我不确定问题是什么 我试图在拍照后计数器达到 1 时录制声音 static int counter counter will always b
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • iOS 滚动视图允许滚动过去的内容

    我正在努力优化我的应用程序以适应横向和较小的屏幕 我主要使用滚动视图来实现这一点 在我的其中一个视图中 我有一个容器视图 当我在故事板中的设备之间切换时 这个容器视图看起来很完美 容器视图映射到具有滚动视图的视图控制器 该滚动视图的顶部 底
  • iphone NSDate 转换问题

    在我的 facebook 图表 Api 中 我正在获取这些数据 来自杰森 updated time 2011 05 17T14 52 16 0000 我正在使用此代码将其转换为有效的日期格式 NSDateFormatter df NSDat
  • 频繁绘制 CGPath 时的性能

    我正在开发一个将数据可视化为折线图的 iOS 应用程序 该图被绘制为CGPath在全屏自定义中UIView最多包含 320 个数据点 数据经常更新 图表需要相应地重新绘制 刷新率为 10 秒就很好了 到目前为止很容易 然而 我的方法似乎需要
  • Google 地图 API -> OpenGLES 崩溃

    日志是从 Crashlytics 粘贴的 对于许多用户来说 崩溃经常发生 据我所知 它与设备 iOS 版本无关 我在我的代码中找不到任何错误 这似乎是纯粹的库问题 是 Google 地图 API 错误吗 我可以做些什么来修复它 或者我应该在

随机推荐

  • SELECT DISTINCT 不工作 Android SQLite

    注意问题已更新为我迄今为止所解决的问题 我正在编写一个应用程序 其位置记录如下 id primary state region area latitude longitude 我可以获取屏幕上的所有数据 但我只想列出州 并且仅列出州而不是任
  • 无法使用 fwrite 将 int 写入文件

    我正在尝试格式化我的键盘日志输出 以便它显示时间 t time 0 now localtime t if now gt tm min prevM now gt tm hour prevH prevM now gt tm min prevH
  • 基于用户选项的 PHP 动态 SQL SELECT 语句

    首先 我想提一下 我一直在疯狂地尝试和搜索以找到解决方案 但到目前为止还没有运气 我的问题如下 我有一个包含数十行的 MySQL 数据库 我创建了一个 jQuery 网格来显示数据 该页面已经可以使用了 根据要求 我正在整理一个页面 人们可
  • IIS 7.5 URL重写规则基于用户代理处理请求

    我编写了一条基于用户代理重定向请求的规则 该规则设置为将默认请求 非移动 重定向到Domain1以及从移动设备到移动域的请求 Domain2 即使在应用移动重定向后 来自移动设备的所有请求都会被带到Domain1 请参阅下面的重定向规则 谁
  • 扩展基础移动 Azure 示例(.net 后端)

    因此 我创建了一个天蓝色移动服务 下载了一个项目并运行它 第一次启动后 我在数据库中看到一些新表 TodoItems 有 2 项 和 MigrationHistory 到目前为止 一切都很好 现在 我想添加一张额外的桌子 我正在制作新模型M
  • XSLT 1.0 比较日期

    我想将当前日期与开始日期和结束日期进行比较 XML is
  • ggplot2:组合绘图时修复轴高度/宽度[重复]

    这个问题在这里已经有答案了 library ggplot2 library gridExtra df1 lt data frame x c A1 A2 A3 A4 something c 10 18 24 32 df2 lt data fr
  • Google App 脚本返回多行数组

    Summary 我是 Google Apps 脚本的新手 但我花了相当多的时间进行研究 但一无所获 基本上我正在尝试复制 SQL 的交叉连接功能 我有 2 个表 一个包含 12 个月的日历表 一个包含 3 个客户的客户表 客户表由 Goog
  • Hive 查询中的时间连接(时间上非常接近的事件)

    我需要一个我很难弄清楚的配置单元查询 我有一个时间序列 如下所示 time source word1 word2 etc 2012 02 01 23 43 16 9988243 0001 2B3B FAF0 2012 02 01 23 43
  • 将三个用例合并为一个用例

    我有一个演员 管理员 他可以对其他用户帐户执行一些操作 例如创建帐户 编辑帐户和删除帐户帐户 我应该做这样的事情 gt UseCase createAccount o gt UseCase DeleteAccount Admin gt Us
  • 对“qInitResources_systray()”的未定义引用

    我用qt官方示例并得到错误 media roroco disk750 Downloads qtbase examples widgets desktop systray main cpp 50 undefined reference to
  • 自动填充用户名和密码 UIWebView Swift

    我发现了很多在 Objective C 中自动填充用户名和密码的方法 但我不知道如何让它与 Swift 一起工作 这段代码的 Swift 等价物是什么 这是否适合我想要完成的任务 谢谢 void webViewDidFinishLoad U
  • 如何判断某个蓝牙设备是否已连接?

    我想使用 applescript 进行定期 每秒 检查以查看是否连接了特定的蓝牙设备 如果是 则弹出快速通知 为了框架它 我想要一个弹出窗口 当我的 Airpods 连接时 因为有时当我把它们拉出来时 它会连接到我的电脑 有时会连接到我的
  • XCode 无法识别环境变量

    我使用以下脚本在 OSX Yosemite 10 10 5 上运行 XCode 7 0 1 7A1001 export FOO bar this should not be necessary but just in case launch
  • 如何配置 Oracle tnsnames 文件位置? [关闭]

    Closed 这个问题是无关 目前不接受答案 我在 Windows 上安装了 Oracle 10g 目前 我的 tnsnames 文件存储在 ORACLEHOME network admin 中 但是 我想将 Oracle 配置为在其他位置
  • 尝试从 C 中的字符串中删除所有数字

    我试图从字符串 char 中取出所有数字 这是我现在所拥有的 Take numbers out of username if they exist don t care about these char newStr strtoul use
  • iPhone,addSubView不调用willViewAppear?

    我正在添加一个视图 addSubView 我也在其他地方使用该视图presentModalViewController viewWillAppear使用presentModalViewController 调用 但不使用addSubView
  • 使用前导下划线真的会带来麻烦吗?

    C C 标准保留所有标识符以下划线开头 如果不在全局命名空间中 则加上大写字母 或包含两个或多个相邻的下划线 例子 int myGlobal namespace mine void Im outta control int LivingDa
  • 为什么 html br 断行标记在此代码中不起作用? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 有人能告诉我为什么我的 php 换行符不起作用 回显 吗 我知道我可以用不同的方式编写代码以使换行符起作用 但我想知道这背后的原因 看来我
  • 为什么iOS坐标系很难理解??只有我?

    我正在研究iOS的UIView 我发现我无法理解边界是如何工作的 For example 请运行此代码 并看到红色框在移动 红框升起来了 白色的根视图是静态的 为什么 为什么红框会上升 请让我知道OTL class ViewControll