我有if(requestType == RequestTypeGetAllApptDetails)
{
if(pageIndex == 0)
{
pastBookings = [[NSMutableArray alloc]init];
onGoingBookings = response[@"ongoing_appts"];
NSLog(@"CHECKINGFAST%@",onGoingBookings);
}
[pastBookings addObjectsFromArray:response[@"past_appts"]];
self.tableView.backgroundView = self.messageView;
[self.tableView reloadData];
}
else if(requestType == RequestTypeGetReportMaterialStatus)
{ // NSArray *custStatusTempArray = response;
customerStatusArray = response;
customerstatusDict = response[@"customerstatus"];
NSLog(@"CUSTOMERSTATUSARRAY %@", customerStatusArray);
NSLog(@"CUSTOMERSTATUSDICT %@", customerstatusDict);
if(customerStatusArray == nil || [customerStatusArray count]==0)
{
NSLog(@"NO MATERIAL ACCEPTED");
}
else
{
custStatusFilteredArray = [NSMutableArray array];
if([customerstatusDict isKindOfClass:[NSDictionary class]])
{
NSDictionary *dict = (NSDictionary *)customerstatusDict;
[dict enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
[custStatusFilteredArray addObject:obj];
NSLog(@"FILTEREDARRAY%@",custStatusFilteredArray);
}];
}
materialStatusStringArray = [custStatusFilteredArray copy];
NSLog(@"materialStatusStringarray%@",materialStatusStringArray);
//sorting the materialstatus string array
NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"bookingid" ascending:NO];
sortedMSArray = [materialStatusStringArray sortedArrayUsingDescriptors:@[sortDescriptor]];
NSLog(@"Sorted Array Response -%@", sortedMSArray);
,其中的每个单元格都代表聊天视图中的消息。每次添加新单元格时,我都会设置顶部内容偏移量,以便单元格“粘贴”#34;在UICollectionView的底部和新的推送单元格如下:
UICollectionView
这很好用。但是,在8秒后,我移除了------------
|-----
| // This space represents a content offset from the top
|-----
A
B
C
D // Each of these is a UICollectionViewCell
------------
顶部的UICollectionViewCell
。这使得剩余的单元格向上移动以填充其位置,然后我设置内容偏移量以适应丢失的单元格,并且它们都向下移动以表现为它们被卡在UICollectionView
的底部。如何才能删除顶部UICollectionView
并不会使其余的单元格像这样跳来跳去?
答案 0 :(得分:0)
不要使用contentOffset
属性来操纵顶部偏移。在UICollectionView
中contentOffset
,contentSize
等所有属性均由UICollectionViewLayout
管理,可根据您的具体需求进行自定义。至于我,有两种选择(按优先顺序):
1)寻找自定义布局(或自行实施),让您实现所需的聊天行为
2)在collectionView的顶部插入一个虚拟空单元格,每次删除/添加任何新单元格时,通过使其布局无效或仅调用来管理虚拟高度单元格以达到目标collectionView.reloadItems([IndexPath(row: 0, section: 0)])
答案 1 :(得分:0)
我通过删除对contentOffset的需求并使用以下步骤解决了这个问题:
执行UICollectionView
:collectionView.transform = CGAffineTransform(a: 1, b: 0, c: 0, d: -1, tx: 0, ty: 0)
在collectionView中的每个单元格的contentView上应用转换:cell.contentView.transform = collectionView.transform
collectionView中使用的反向数据数组:myData.reversed()