gpt4 book ai didi

ios - 全宽 View 不包含与父级相同的框架宽度

转载 作者:行者123 更新时间:2023-11-28 21:33:54 27 4
gpt4 key购买 nike

我遇到一个问题,我的 UIImageView 使用以下约束跨越整个屏幕宽度。

  • 将前导对齐到:Superview(等于:-20)
  • 将尾部对齐到:Superview(等于:-20)
  • Top Space to : Top Layout Guide(等于:0)
  • 纵横比:1:1

图像在获得纵横比的同时假定屏幕的宽度(在本例中为正方形)。当我开始尝试用图像制作一个圆圈时出现了问题,我注意到我的 UIIMageView 的框架没有正确的值。

因为我通过 RoboVM 使用 Java,所以你不得不原谅下面的代码不是在 Objective-C 中,但是你可以用很少的努力将代码转换为 Objective-C,因为它非常简单。

public class MyViewController extends UIViewController {
@IBOutlet private UIImageView myImageView;

@Override public void viewDidLoad() {
System.out.println("Image view width: " + myImageView.getFrame().getWidth());
System.out.println("Superview width: " + this.getView().getFrame().getWidth());
}
}

使用此 Controller 运行应用程序的结果显示如下:

Image view width: 240.0
Superview width: 320.0

当将图像的框架宽度减半并将其应用于 CALayer#cornerRadius 属性时,图像不会形成一个完整的圆,但是当使用一半的 super View 宽度时(即实际上是图像的大小)结果是一个完美的圆。

最佳答案

viewDidLoad 中,它刚刚从 XIB 或 Storyboard 中加载了您的 View ,尚未调整大小。当调用 viewWillAppear 时,大小应该是正确的。因此,请尝试将您的代码放入 viewWillAppear 中,看看是否有帮助。

关于ios - 全宽 View 不包含与父级相同的框架宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34678439/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com