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