在iOS Swift中,UInt8无法转换为CGFloat错误

时间:2014-08-13 03:37:23

标签: ios swift

我是使用Swift进行iOS应用程序开发的初级程序员。现在我面临编译时问题" UInt8无法转换为CGFloat"

var numberOfAvatars:Int = 8
let count:Int = 1
let columns:Int = 3
let dimension:CGFloat = 84.0
var spacing:CGFloat = (avatarContentcroll.frame.size.width - columns * dimension)/(columns+1)
var scHeight:CGFloat = spacing + (numberOfAvatars/columns) * (dimension + spacing)

我已经尝试了所有的解决方案并做了很多实验。而且我不确定为什么我仍然会收到此错误。

2 个答案:

答案 0 :(得分:1)

你必须明确地将其作为

var spacing:CGFloat = CGFloat((avatarContentcroll.frame.size.width) - CGFloat(columns) * (dimension))/(columns+1)
var scHeight:CGFloat = CGFloat(spacing + (CGFloat(numberOfAvatars)/CGFloat(columns)) * (dimension + spacing))

或者您可以尝试转换CGFloat中的每个表达式

var spacing:CGFloat = ((avatarContentcroll.frame.size.width) - CGFloat(columns) * (dimension))/(columns+1)
var scHeight:CGFloat = spacing + (CGFloat(numberOfAvatars)/CGFloat(columns)) * (dimension + spacing)

答案 1 :(得分:0)

您必须明确地将Int转换为CGFloat s(通过as),或构建它们 - 如下所示:

var spacing:CGFloat = ((avatarContentcroll.frame.size.width) - CGFloat(columns) * (dimension))/(columns+1)
var scHeight:CGFloat = spacing + (CGFloat(numberOfAvatars)/CGFloat(columns)) * (dimension + spacing)