我遇到了一行令我困惑的代码:
return [cellSize[indexPath.item % 2] CGSizeValue];
更具体地说:[indexPath.item % 2]
我在Xcode中发现%
的唯一内容主要涉及%@, %f, etc...
并在字符串中转义%。我也知道三元,但那不是这个,是吗?
有人可以解释一下这行是做什么的吗?
如果需要,可以提供更多背景信息:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CQTaskPhotosCVCell *cell = (CQTaskPhotosCVCell *)[collectionView cellForItemAtIndexPath:indexPath];
return [cellSize[indexPath.item % 2] CGSizeValue];
}
答案 0 :(得分:4)
return [cellSize [indexPath.item%2] CGSizeValue];
%
是modulo operator(除法后的余数)。
选择% 2
是选择偶数行与奇数行的常用方法,例如替代着色。在您的情况下,它似乎是从两个不同的单元格大小中选择(基于变量cellSize的名称)。
答案 1 :(得分:2)
对于偶数编号indexPath.items
,代码使用cellSize[0]
来确定indexPath
处项目的大小。对于奇数编号indexPath.items
,代码使用cellSize[1]
。
%
是模运算符(在整数除法后提供余数)。除以2时,余数将始终为0或1。
答案 2 :(得分:1)
它是模数:https://en.wikipedia.org/wiki/Modulo_operation
在计算中,模运算在一个数除以另一个
之后找到余数答案 3 :(得分:0)
它是模运算符并计算除法运算的余数。
/运算符的结果是第一个操作数除以第二个操作数的商; %运算符的结果是余数。
ISO / IEC 9899:TC3,6.5.5:5