visible可见的 cell数组visibleCells NSIndexPath的数组indexPathsForVisibleRows
indexPathsForVisibleRows前几天做了个小需求,真心感觉苹果的TableView挺强大。刚好今天有时间就也在简书上记录下
需求是添加手机通讯录联系人,并且可以自己定义姓名、电话、已选择的联系人可修改电话和姓名,并且保存到本地,下次进入直接显示。
在点击返回按钮的时候加载这段代码
NSArray *cellIndPaths = [_phoneTableView indexPathsForVisibleRows];获取的是所有的cell然后遍历
PhoneTableViewCell *cell = [_phoneTableView cellForRowAtIndexPath:indexPath];有多少行cell就会进来多少次,每一行具体的cell没一行的cell都会与indexPath.row对等所以也可以直接获取指定的行;
由于国家城市没用联系人的模型,后来加的所已就创建个数组直接保存了,当然也可以存为字典,indexPath.row记录哪一行的国家
if (_selectedPersons.count > indexPath.row) {
AddressPerson *person = _selectedPersons[indexPath.row];
person.name = name;
person.phone = phone;
[_selectedPersons setObject:person atIndexedSubscript:indexPath.row];
进来这个里就是从手机通讯录中选取的联系人,模型的row与cell的row是对应的,直接用界面cell修改模型存取的cell即可,注意:这里修改的姓名、电话会同时修改通讯录的选取的姓名。setObject直接替换之前存储的模型即可,else则是用户自定义的直接添加进数组即可。
name.length > 0 || phone.length > 0做这样的一个判断是减少遍历进入次数,存储方式用了归档和UserDefaults
网友评论