【发布时间】:2018-07-09 09:18:03
【问题描述】:
我在 CGFloat 中有以下数字
- 375.0
- 637.0
- 995.0
我需要获取 CGFloat 数据类型中的第一个数字。例如,#1 的结果必须是 3.0,#2 的结果必须是 6.0,#3 的结果必须是 9.0
我尝试了以下
let width:CGFloat = 375.0
// Convert Float To String
let widthInStringFormat = String(describing: width)
// Get First Character Of The String
let firstCharacter = widthInStringFormat.first
// Convert Character To String
let firstCharacterInStringFormat = String(describing: firstCharacter)
// Convert String To CGFloat
//let firstCharacterInFloat = (firstCharacter as NSString).floatValue
//let firstCharacterInFloat = CGFloat(firstCharacter)
//let firstCharacterInFloat = NumberFormatter().number(from: firstCharacter)
这里似乎没有任何效果。我哪里错了?
更新
要回答 @Martin R,请在下面找到我的解释
我正在使用 UICollectionView 实现一个网格视图(如照片应用程序)。我希望根据 iPhone/iPad、纵向和横向的屏幕尺寸调整单元格的大小。基本上我不想要固定的列。对于较大的屏幕尺寸,我需要更多的列,而对于较小的屏幕尺寸,我需要更少的列。我想也许我可以根据屏幕宽度来决定。例如,如果屏幕宽度为 375.0 则显示 3 列,如果某处大约 600 则显示 6 列,如果大约 1000 则显示 10 列等宽。所以我想出的是a)根据屏幕大小的第一个数字决定列,然后将宽度除以实际屏幕宽度。例如对于 375.0 的屏幕宽度,我的单元格大小为 CGSize(width: screenWidth / totalColumn) 等等。
【问题讨论】:
-
是“1”。您输入的一部分?
-
@Koen 宽度常数是输入。
-
我很好奇:为什么你需要那个,实际目的是什么? – 结果应该是什么?为
-0.000123? -
输入是否总是相同的格式,所以三个数字,一个小数点,然后另一个数字?在这种情况下,除以 100,然后使用
floor。
标签: swift string swift4 cgfloat