gpt4 book ai didi

swift - 二元运算符 '*' 不能应用于类型 'CGRect' 和 'CGFloat' 的操作数

转载 作者:行者123 更新时间:2023-11-30 10:50:41 25 4
gpt4 key购买 nike

我遇到了二元运算符的问题,

这是

scrollView.contentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height+(self.view.frame* (1/10) *CGFloat(UIImage.count)))

CGRectInt 存在问题。

我认为问题出在 1/10 上,因此我将其替换为 CGFloat(1/10):

scrollView.contentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height+(self.view.frame* *CGFloat(UIImage.count)))

但是现在,我得到了新的消息类型 CGRectCGFloat

如何消除这个错误?

最佳答案

你应该继续使用1/10,避免强制转换。将其更改为 CGFloat(1/10) 实际上会引入另一个问题,告诉编译器“嘿,即使这是 CGFloat 参数,我真的希望您进行整数数学运算1 除以 10(为零!),然后将其转换为 CGFloat。”

因此,您可以坚持使用 1/10,并且由于该参数是 CGFloat,因此它将正确执行正确的 float 学运算。真正的问题很简单,您将 view.frame 乘以 1/10,而不是 view.frame.height:

scrollView.contentSize = CGSize(width: view.frame.width,
height: view.frame.height + (view.frame.height * 1 / 10 * CGFloat(UIImage.count)))

我不知道如何处理该 UIImage.count 引用,因此我将其保留原样,但这显然是不对的。

<小时/>

虽然上面的代码工作得很好,但我们大多数人,来自其他语言,都会明确地将数字指定为 float ,例如 ... * 1.0/10.0 或只是 .. . * 0.1 或其他什么,以使其完全明确我们不希望它进行任何整数数学运算:

scrollView.contentSize = CGSize(width: view.frame.width,
height: view.frame.height + (view.frame.height / 10.0 * CGFloat(UIImage.count)))

在这个特定的示例中,这完全等同于上面的内容,但是使用 10.0 而不是 10 非常清楚地表明我们想要进行 float 点数学。

关于swift - 二元运算符 '*' 不能应用于类型 'CGRect' 和 'CGFloat' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54612965/

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