- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直断断续续地使用那种方法,但从未真正理解它们的行为方式。
每次我尝试使用它们时,我发现自己在尝试不同的方面时陷入黑暗,而且它似乎从来没有达到我期望的效果。
为了争论,我正在尝试转换从 UIKeyboard 的通知中获得的框架。
在横向模式下,我得到这个 NSRect:
UIKeyboardFrameEndUserInfoKey = NSRect: {{406, 0}, {362, 1024}}
现在我想将它转换为正确的矩形(交换 x/y、宽度和高度),所以我这样做了
CGRect compatibleRect = [self convertRect:[[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue] toView:nil];
但是矩形变成了:
compatibleRect = CGRect: {{406,406}, {362, 1024}}
任何帮助将不胜感激:)
最佳答案
你用错了。它基本上进行坐标转换。我假设它首先将 rect 从起始 View 转换为窗口坐标,然后从窗口坐标转换回第二个 View 的坐标系。这是一个例子。
您的窗口中有两个 subview ,一个的框架为 {{25,0}, {100, 100}},另一个的框架为 {{50, 50}, {200, 200}}想要将以下 rect {{50, 50}, {50, 50}} 从第一个 subview 转换到第二个 subview 。以下是它的工作原理。
将矩形从第一个 subview 的坐标转换为窗口坐标:由于我们开始的 subview 的原点为 {25,0},因此我们需要将其转换为窗口坐标。这可以通过将 subview 的原点添加到矩形的原点来完成,因此窗口坐标中的新矩形是 {{75, 50}, {50, 50}}
将新矩形从窗口坐标转换为第二个 subview 的坐标:我们从矩形 {{75, 50}, {50, 50}} 开始,第二个 subview 的框架是 {{50, 50 }, {200, 200}}。现在我们将第二个 subview 的原点减去 rect 来进行我们的翻译。所以我们最终得到一个翻译后的矩形 {{25, 0}, {50, 50}}
关于iphone - 如何 - (CGRect)convertRect :(CGRect)rect toView:(UIView *)view work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3382316/
我正在尝试了解这些方法的功能。你能给我提供一个简单的用例来理解它们的语义吗? 以文档为例,convertPoint:fromView:方法描述如下: Converts a point from the
我读过这个iPhone - Get Position of UIView within entire UIWindow和其他人多次,但就是无法让我的应用程序向我输出某物在屏幕上的绝对位置。 我有一个
我想要相对于主窗口的坐标,因此我使用 convertRect:toView: 并将 nil 作为第二个参数: CGRect result = [self.view convertRect:addToL
我想做一个类似iOS主屏幕文件夹的动画,我必须知道“文件夹”的最终位置的帧: 我正在使用自定义过渡,这里是动画文件的代码: class FolderAnimationController: NSObj
我不太明白方法convertPoint:toView:。 在 Apple 的文档中写道 convertPoint:toView: Converts a point from the receiver’
我有一个带有自定义 TableCellViews 的 TableView,上面有 UILabels 和 UIButtons。当其中一个按钮被粘贴时,我想显示一个描述按钮文本的“工具提示”。 除了当我尝
我使用transitionFromView:toView:duration 在一个 View 和另一个 View 之间翻转。 我的源 View 位于其父 View 的中心。我还想将目标 View 居中
我正在阅读 View Controller Programming Guide for iOS这些天,它说: Because transitions can be canceled, you shou
这是我在 stackoverflow 上的第一篇文章。我是 iOS 开发新手,我的母语不是英语,所以我会尽力解释我的问题。 问题: 我已将两个 View 添加到我的 AppDelegate 窗口,我想
在布局约束下使用 [UIView transitionFromView:toView:...] 的正确方法是什么? 我想在 super View 中安装约束来约束 toView。在转换调用之前我不能这
我正在通过使用自定义过渡动画呈现下一个 View Controller 来进行相当简单的转场。 本质上,过渡创建了 toView 离开屏幕,然后将其从右侧滑到 fromView 上,而 fromVie
我尝试制作导航栏指示器 View 动画。布局有问题。 期望这样: 我的解决方案是将导航栏底部位置的位置转换为self.navigationItem.titleView。 导航栏指示器 View 应该属
在 UIView 容器中的两个 subview 之间切换时出现奇怪的错误。请注意,这两个 subview 是相同的 View Controller 类型(相同的 View ),唯一的区别是标签,它由属
目前,我正在尝试获取 UIWebView 的坐标。这个 webView 是 viewController View 的 subview 。 viewController 包含在 UINavigatio
我应该在 init 方法中还是在 didMove(toView:) 中以编程方式设置 SKScene(即创建子节点、将子节点添加到当前场景、布局等)? 最佳答案 是的,节点的初始化应该放在“init”
我使用模式转场将我的 UIBarButtonItem 链接到 XIB 中的 View Controller ,单击 UIBarButtonItem 后,出现以下错误,我找不到原因,任何人都请帮助我。谢
关于 transitionFromView:toView:duration:options:completion: Apple 文档在最后几行中这样说: This method modifies th
我正在编写一个方法,它应该接收一个点:'in_centre',它将在当前 View 的坐标系中(也作为另一个参数传递:'target') 我需要将这个点转换成窗口坐标。 文档说我应该通过将这里的第二个
我如何取消动画并开始使用 transitionFromView:toView:duration:options:completion?实际上我想要的是避免在动画被取消时调用完成 block ,只是因为
我有一个在横向模式下创建的 View (在旋转等很久之后)。 在这个 View 中,我想找到一个相对于主窗口的点。 以下代码在纵向模式下工作,但在横向模式下它仍然返回值,就好像它在纵向模式下一样。 C
我是一名优秀的程序员,十分优秀!