我有这个错误。
无法为索引类型为“ CGFloat”的“ [UIImage]”下标
为什么会这样?
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if(scrollView.contentOffset.y > self.view.frame.height) {
//(1/10) because we are changing the scrollView every 1/10 of the screen
let pictureCount = scrollView.contentOffset.y/scrollView.frame.height*(1/10)
imageView.image = images[pictureCount]
}
}
答案 0 :(得分:1)
您不能使用CGFloat
在Swift中为数组建立索引,您可以通过简单地强制转换为Int
来修复它。
let priceCount : CGFloat = 3 /* just for testing purposes */
let images = [UIImage]()
let imageView = UIImageView()
imageView.image = images[Int(priceCount)]
此演员表由@prekshya basnet在评论中指出。
数组仅具有Int
个位置,例如:
array[0]
,array[1]
,array[2]
如果CGFloats
可以为数组建立索引,则会产生歧义,因为类似array[0.5]
这样的东西可能是访问选项
注意:从CGFloat
到Int
的转换只会删除十进制值而不四舍五入,这意味着如果您拥有{{1 }}或Int(CGFloat(0.1))
,将始终产生Int(CGFloat(0.9))
。