gpt4 book ai didi

ios - 以编程方式设置图像高度时不起作用

转载 作者:行者123 更新时间:2023-11-28 13:47:58 25 4
gpt4 key购买 nike

我以编程方式设置图像的高度。但它只能在 iPhone SE 上正常工作。但例如在 iPhone X 上则不然。

截图如下:

enter image description here

enter image description here

现在让我们看一下我的代码。如您所见,我以编程方式为图像设置了 x 和 y 位置。还有,高度和宽度。

let kint = skrolas.frame.height // Here's my scrollView frame

vienas.frame = CGRect(x: 8, y: 17, width: screenWidth-42, height: kint) // Here I set my first image programatically. I want height to be the same like my scrollView height.


let dydis2 = vienas.frame // Here's my first picture frame

du.frame = CGRect(x: (dydis2.origin.x+(screenWidth-42)+8), y: 17, width: screenWidth-42, height: kint) // Here's my second picture


let dydis3: CGRect = du.frame
trys.frame = CGRect(x: (dydis3.origin.x+(screenWidth-42)+8), y: 17, width: screenWidth-42, height: kint) // And thirt picture

如您所见,我的宽度工作正常。但是我的高度不是。我不明白为什么。正如我在代码中提到的,我将图像高度设置为与 scrollView 相同。

我的 scrollView 在 iPhone XS 上看起来像这样: enter image description here

这是我的项目的链接: DropBox

@IBOutlet weak var skrolas: UIScrollView!
public var screenWidth: CGFloat {
return UIScreen.main.bounds.width
}
public var screenHeight: CGFloat {
return UIScreen.main.bounds.height
}

最佳答案

问题 1:您应该使用自动布局约束而不是显式设置框架。

问题 2:您正在 viewDidLoad() 中设置帧大小,这是 发生任何布局之前,因此您无权访问实际屏幕宽度和高度。

问题 3:您有一个“上传另一张照片”选项,所以我猜您最终可能想要显示许多 照片。使用您的方法,您很快就会遇到内存问题。

您可能应该考虑使用 UICollectionView。这将为您提供“自动”水平滚动,并将更有效地使用内存——您可以毫无问题地滚动浏览很多很多图像。

但是,查看尺寸问题的第一步是将您的尺寸代码从 viewDidLoad() 移动到 viewDidLayoutSubviews(),您将获得正确的尺寸值。

关于ios - 以编程方式设置图像高度时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55158898/

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