
在使用UICollectionView时,需要插入、删除UICollectionViewCell。这时候就会遇到Crash,各种问题不断出现。想解决问题是Xcode报错原因又不明确,要怎么做才好呢。根据我个人经验,我把我的实现写出来,实现选中添加一个数据,长按删除一个数据。
创建数组。要求是NSMutableArray类型的全局变量属性。
注1:可变数组容易实现增删 *** 作,命名为:_dataArray。
注2:长按手势需要添加代理UIGestureRecognizerDelegate。
iOS开发 怎么删除UICollectionView的cell
对_dataArray赋值或初始化。如图:
注:对于方式一,不建议使用本身类型不相同,也没有对_dataArray进行初始化,当需要删除数组时会Crash。通常使用方法二。
实现点击Cell插入新数据
1、找到并写出UICollectionView自身的代理方法:didSelectItemAtIndexPath;
2、获取被点击的NSIndexPath;
3、将NSIndexPath转换成数组;
4、调用insertItemsAtIndexPaths方法插入数据。
实现长按Cell删除数据
1、在cellForItemAtIndexPath创建并初始化长按手势;
2、设置长按时间为10秒触发;
3、添加手势代理delegate = self;
4、设置标识viewtag = indexPathrow。
实现长按Cell删除数据
1、实现手势监听事件方法handlelongPress:;
2、区分手势动作,开始触发和结束触发 *** 作,选其一实现,否则会调用两次;
3、根据recognizer手势传递的viewtag值删除数组;
4、将recognizerviewtag转换为NSIndexPath型,再转换为NSArray型;
5、调用deleteItemsAtIndexPaths方法删除数据。
解决问题:
1、当_dataArray是使用方法一直接赋值时,删除会有可能导致程序崩溃;
2、当删除到最后一个时,在调用deleteItemsAtIndexPaths会崩溃;
3、当使用手势时,获取的数组下标有误,会超出数组大小。
在ios开发的过程中,经常需要使数组中的数据倒叙排列!比如在tableView显示数据的时候需要使数据倒序排列!那么如何解决数组的倒序排列问题呢?好多开发的小伙伴可能是便利数组的下标来获取,但是这种方法如果数据很大的情况下程序体验度会降低 , 这里介绍一个方法,一句话便可以搞定数组的倒序排序问题!
sortedArrayUsingSelector
按Key值大小对NSDictionary排序
sortedArrayUsingSelector
sortedArrayUsingComparator
sortedArrayUsingDescriptors & sortUsingDescriptors
前者带返回值,是NSArray的方法,排好序的数组是返回值中的数组;
后者不带返回值,是NSMutableArray的方法,是对当前数组自己排序
接下来根据一个对象的属性,排列这个对象
h
m
排序方法的实现
这里的NSArray中的第一元素表示首先按照这个元素的升序或者降序进行排序,对于有重复项的,再按照第二元素进行排序,依次进行类推
转自: >
Systemoutprintln(“我是java的打印”);
在Object-C 则如此:
打印一个NSString:
NSString str = @”我是OBject-C数据”;
NSLog(@“打印数据了% @”,str);
NSLog的格式如下所示:
%@ 对象
%d, %i 整数
%u 无符整形
%f 浮点/双字
%x, %X 二进制整数
%o 八进制整数
%zu size_t%p 指针
%e 浮点/双字 (科学计算)
%g 浮点/双字
%s C 字符串
%s Pascal字符串
%c 字符
%C unicha
r%lld 64位长整数
(long long)%llu 无符64位长整数
%Lf 64位双字
<3>下面说说数组,很常用的数组
//初始化不可变数组,切记初始化后不可以改变的数组
NSArray mArray =[[NSArray alloc] initWithObjects:
@"雨松MOMO",
@"15810463139",
@"xuanyusong@gmailcom",
self,nil];
//可以改变的数组
NSMutableArray nsma = mArray ;//这里我们直接的赋值;
下面注意的是对数组的遍历,如同java里面一样有一种简单的遍历数组的方法:
遍历方法一:
For(int i = 0; i < nsmacount; i++ ){
NSString temp = [nsma objectAtIndex:i];//这里便是拿出来没一个数据
}
遍历方法二:
//objective-c 20 引入的快速枚举法 不仅速度快 并且安全性高,推荐使用这种方式来遍历
for (NSString str in nsma) {
NSLog(@"固定数组 %@", str);
}
NSMutableArray是一个可以改变数据的数组,提供了两种方法:
addobject方法用于向数组中添加元素
//添加数组
- (void)addArray: (NSObject ) str
{
[mListArray addObject:str];
}
removeObject方法用于删除元素
//删除数组
-(void) deleteArray:(NSString )str
{
[mListArray removeObject:str];
}
replaceObjectAtIndex 方法可以修改数组中的某一个元素
//修改数组中的元素
-(void)changeArray:(int)ID:(NSObject ) str
{
[mListArray replaceObjectAtIndex:ID withObject:str];
}
insertObject方法用于向数组中插入一个元素
//向数组中插入一个元素
-(void)insertArray:(int)ID:(NSObject ) str
{
[mListArray insertObject:str atIndex:ID];
}
以上就是关于iOS开发 怎么删除UICollectionView的cell全部的内容,包括:iOS开发 怎么删除UICollectionView的cell、[iOS功能]- iOS数组排序(倒叙 生序 降序)、ios 怎么获得数组中的数组元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)