UICollectionViewCell
中有一到三个UICollectionView
。有没有办法在reloadData
之后始终将单元格放在屏幕底部?
+----------------+ +----------------+ +----------------+
| | | | | |
| | | | | |
| | | | | |
| | | | | +------------+ |
| | | | | | cell 1 | |
| | | | | +------------+ |
| | | +------------+ | | +------------+ |
| | | | cell 1 | | | | cell 2 | |
| | | +------------+ | | +------------+ |
| +------------+ | | +------------+ | | +------------+ |
| | cell 1 | | | | cell 2 | | | | cell 3 | |
| +------------+ | | +------------+ | | +------------+ |
+----------------+ +----------------+ +----------------+
答案 0 :(得分:1)
加载集合视图后,只需调用以下方法即可获得所需内容。
- (void)updateContentInset {
NSInteger numRows = [self collectionView:collectionView numberOfItemsInSection:0];
CGSize contentInsetTopSize = collectionView.bounds.size;
CGFloat contentInsetTop = contentInsetTopSize.height;
int i=0;
for (i=0;i<numRows;i++) {
CGFloat height = 70 + [self heightOfTextForString:[arrNotes objectAtIndex:[NSIndexPath indexPathForItem:i inSection:0].row] andFont:[UIFont fontWithName:@"HelveticaNeue-LightItalic" size:13.0] maxSize:CGSizeMake(157, FLT_MAX)];
contentInsetTop = contentInsetTop - height;
if (contentInsetTop <=0) {
contentInsetTop = 0;
break;
}
}
NSLog(@"Height-->%f",contentInsetTop);
collectionView.contentInset = UIEdgeInsetsMake(contentInsetTop,0,0,0);
[NSTimer scheduledTimerWithTimeInterval: 0.01 target: self
selector: @selector(callTheTarget:) userInfo: nil repeats: NO];
}