如何获取UICollectionView
实例中整个部分的框架(UITableView
值)?
我知道rectForSection:
有UICollectionView
方法。我正在为UICollectionViewFlowLayout
寻找类似的东西。
我检查了rectForSection:
的文档但找不到 Addition of prime No upto 2 million below is the code.
Please let me know if anyone have doubt.
<html>
<body>
<input id="inp" width="200px"/>
<input type="button" onClick="onPress()" value="Check"/>
</body>
<script>
function onPress()
{
var value= document.getElementById("inp").value;
var arr=[2,3,5,7], add=17;
for(var divisor=2; divisor<value; divisor++)
{
var prime= true
if(divisor%2==0 || divisor%3==0 || divisor%5==0 || divisor%7==0)
{
prime=false;
}
if(prime !=false)
{
for(var j=0; j<arr.length; j++)
{
if(divisor%arr[j]==0)
{
prime=false;
}
}
}
if(prime==true)
{
arr.push(divisor);
add+= divisor;
}
}
console.log(add);
}
</script>
</html>
的任何内容。
答案 0 :(得分:3)
到collectionView添加类别
@implementation UICollectionView (BMRect)
- (CGRect)bm_rectForSection:(NSInteger)section {
NSInteger sectionNum = [self.dataSource collectionView:self numberOfItemsInSection:section];
if (sectionNum <= 0) {
return CGRectZero;
} else {
CGRect firstRect = [self bm_rectForRowAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:section]];
CGRect lastRect = [self bm_rectForRowAtIndexPath:[NSIndexPath indexPathForItem:sectionNum-1 inSection:section]];
return CGRectMake(0, CGRectGetMinY(firstRect), CGRectGetWidth(self.frame), CGRectGetMaxY(lastRect) - CGRectGetMidY(firstRect));
}
}
- (CGRect)bm_rectForRowAtIndexPath:(NSIndexPath *)indexPath {
return [self layoutAttributesForItemAtIndexPath:indexPath].frame;
}
@end
答案 1 :(得分:1)
集合视图部分框架取决于集合视图布局。它可能是流布局或自定义布局。所以你不会得到任何预定义的解决方案。但您可以使用
计算布局UICollectionViewLayoutAttributes *attributes = [self.collectionView layoutAttributesForItemAtIndexPath:indexPath];
UICollectionViewLayoutAttributes *attributes = [self.collectionView layoutAttributesForSupplementaryElementOfKind:UICollectionElementKindSectionHeader atIndexPath:indexPath];
我建议你继承UICollectionViewLayout并在其中加入剖面框计算代码,这样你的剖面框将永远是更新的。
注意:如果剖面起点和终点没有垂直对齐,这些点不会给你rect的超集。说实话,没有更好的方法来获得剖面框架。