如何将 heightAncor 转换为 CGFloat 类型?

Posted

技术标签:

【中文标题】如何将 heightAncor 转换为 CGFloat 类型?【英文标题】:How to convert heightAncor to CGFloat Type? 【发布时间】:2018-07-25 14:42:19 【问题描述】:

使用动画更改 UITextField 的高度后,作为子视图的渐变层的高度不再与父高度匹配。

我想将NSLayoutDimensons 类型的视图的heightAncor 转换为CGFloat,因此我可以将GradientLayer 的frame.size.height 设置为等于UITextField 的heightAncor 这可能吗?

【问题讨论】:

您能提供更多的上下文吗?你到底想做什么? @matt 请检查编辑.. 不认为这是可能的,但根据 doc A layout anchor representing the height of the view’s frame. 所以你可以直接通过 view.frame.size.height 获得高度 @DharmeshKheni 它并没有真正帮助我,因为我场景中的框架在高度上比父元素略小。所以我需要看看两者之间有什么区别并以某种方式匹配它。 好的,这是您***.com/questions/51502631/… 的后续行动。问题是你一直在问 x-y 问题,即你仍然没有问你需要知道答案的问题。你在假设一种解决问题的方法并询问那个,但你总是把自己引向错误的道路。 【参考方案1】:

所以我可以将 GradientLayer 的 frame.size.height 设置为等于 UITextField 的 heightAncor 这可能吗?

您不需要从锚点读取任何值,如果可以的话,它不会有任何好处。约束只是对自动布局引擎的指令。您不是引擎,因此约束对您几乎没有直接意义。

如果您将代码放入viewDidLayoutSubviews,则自动布局引擎将完成其工作,现在您可以直接获取文本字段的frame.size.heightbounds.size.height(或任何视图的框架或界限),这将是正确的。

【讨论】:

哦,完全正确,并回答了您在这里提出的问题。但它不会让您同时获得文本字段和您实际追求的渐变层的动画。你在没有真正学习或询问的情况下一直围绕着它跳舞。 我什至不知道我问的是不是我需要问的。在对一些更改进行动画处理后,我只需要学习如何将图层大小与其父视图相匹配。我的项目相当复杂,超出了我的知识和技能,我正在尽我最大的努力学习我需要和可以做的事情。确保我正在做所有我能做的研究。甚至在您的书中(safaribooksonline.com)阅读了一些关于 CALayers 的内容,但我不确定我是否完全理解如何解决我的问题。 我完全支持你,但我仍然认为明确如何在 Stack Overflow 上提出有效的问题会很有用,而这正是我所关注的。你还没有说清楚你想做什么。为什么文本字段甚至一个渐变层覆盖它?如果您这样做,用户将无法输入任何文本。所以很难想象问题到底是什么。通过询问您想要达到的实际效果,而不是预先假设部分解决方案,您可以获得更好的帮助。这就是我要说的。 我不是在问你在做什么。我在问你想要做什么。 none 在您提出的 any 问题中。这就是为什么你一直在这里转动你的***。创建一个新项目,将问题抽象化,以便单独复制它,并在您提出新问题时描述或发布该项目!

以上是关于如何将 heightAncor 转换为 CGFloat 类型?的主要内容,如果未能解决你的问题,请参考以下文章

快速更改 UIView 图像

如何将 UTC 时间转换为本地时间

如何将UTC秒数转换为日期,100分,在线等

如何将DataGridView转换为DataTable?

手机如何将照片转换为pdf

ArcEngine中如何将图形转换为要素