ios – 大小更改时更新Autolayout约束的位置?

ios – 大小更改时更新Autolayout约束的位置?,第1张

概述我在包含UIView的底部布置了几个UIView.我希望这些视图始终具有相等的宽度,并始终拉伸以共同填充包含视图的宽度(如底部的表情符号键盘按钮).我接近这个的方法是设置相等的宽度到其中一个视图,然后只是将该视图的宽度约束更新为superviewWidth / numberOfViews,这将导致所有其他视图更新为相同的值. 我想知道更改约束常量的代码需要去哪里.需要在键盘首次出现在屏幕上之前进行 我在包含UIVIEw的底部布置了几个UIVIEw.我希望这些视图始终具有相等的宽度,并始终拉伸以共同填充包含视图的宽度(如底部的表情符号键盘按钮).我接近这个的方法是设置相等的宽度到其中一个视图,然后只是将该视图的宽度约束更新为supervIEwWIDth / numberOfVIEws,这将导致所有其他视图更新为相同的值.

我想知道更改约束常量的代码需要去哪里.需要在键盘首次出现在屏幕上之前进行设置,并在旋转设备时进行更新.

我首次尝试解决方案是将其放在updateVIEwConstraints中并通过containerVIEw.frame.size.wIDth计算宽度.但是这个方法在加载时调用两次,第一次正确计算值,但第二次由于某种原因,containerVIEw的宽度为0.0.另一个问题是,旋转时,containerVIEw的宽度不是旋转后的值,而是旋转前的当前值.但是我不想等到旋转完成后更新约束,因为按钮将是原始大小然后改变,这将对用户产生不利影响.

我的问题是:放置此代码的最合适的位置在哪里?有没有更好的方法来计算宽度?我可以保证它的宽度始终与屏幕宽度完全相同.我在Xcode 6中使用Size Classes,因此不推荐使用willRotatetoInterfaceOrIEntation和类似的方法.

解决方法 没有理由手动更新宽度:

>在视图中放置宽度相等的所有视图,彼此之间没有间距
>为所有这些添加等宽度约束
>为边间和彼此之间的间距添加0宽度的约束
>降低一个或多个相等宽度约束的优先级,以防宽度不能平均分配.

然后自动布局将为您处理一切.

总结

以上是内存溢出为你收集整理的ios – 大小更改时更新Autolayout约束的位置?全部内容,希望文章能够帮你解决ios – 大小更改时更新Autolayout约束的位置?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1101773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存