iOS评论回复功能实现

简介: iOS评论回复功能实现


核心代码:


// 点击评论回复按钮

-(void)reply:(UIButton *)button{

if (button.selected == NO) {// 点击回复时

NSDictionary *dic =@{};

NSDetailCommentCellModel *model = [[NSDetailCommentCellModel alloc]initWithDictionary:dic error:nil];

[_dataArray insertObject:model atIndex:button.tag+1];

[self replyInsertTableviewRow:button.tag +1];

[_longDetailView.tableview reloadData];

if (button.tag<_markIdex) {

_markIdex = _markIdex+1;

}

if (_markIdex > 0) {

[_dataArray removeObjectAtIndex:_markIdex];

[self replyDeleteTableviewRow:_markIdex];

[_longDetailView.tableview reloadData];

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_markIdex-1 inSection:0];

NSHotCommentCell *cell = [_longDetailView.tableview cellForRowAtIndexPath:indexPath];

if (cell == nil) {

HotCommentReplyCell *cell = [_longDetailView.tableview cellForRowAtIndexPath:indexPath];

[cell.replyBtn setSelected:NO];

[cell.replyBtn setTitle:@"回复" forState:UIControlStateNormal];

}else{

[cell.replyBtn setSelected:NO];

[cell.replyBtn setTitle:@"回复" forState:UIControlStateNormal];

}

}

_markIdex = button.tag+1;

[button setSelected:YES];

[button setTitle:@"取消" forState:UIControlStateNormal];


//更新布局

[_longDetailView.tableview mas_updateConstraints:^(MASConstraintMaker *make) {

make.height.equalTo(@(_longDetailView.tableview.contentSize.height+64));

}];

[_longDetailView.scrollView mas_updateConstraints:^(MASConstraintMaker *make) {

make.bottom.mas_equalTo(_longDetailView.tableview.mas_bottom);

make.bottom.mas_greaterThanOrEqualTo(_longDetailView);

}];

}else{// 点击取消时

[_dataArray removeObjectAtIndex:button.tag+1];

[self replyDeleteTableviewRow:button.tag+1];

[_longDetailView.tableview reloadData];

[button setSelected:NO];

[button setTitle:@"回复" forState:UIControlStateNormal];

_markIdex = -1;


//更新布局

[_longDetailView.tableview mas_updateConstraints:^(MASConstraintMaker *make) {

make.height.equalTo(@(_longDetailView.tableview.contentSize.height+64));

}];

[_longDetailView.scrollView mas_updateConstraints:^(MASConstraintMaker *make) {

make.bottom.mas_equalTo(_longDetailView.tableview.mas_bottom);

make.bottom.mas_greaterThanOrEqualTo(_longDetailView);

}];

}

}


// 回复插入一行

- (void)replyInsertTableviewRow:(NSInteger)index{

[_longDetailView.tableview beginUpdates];

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:index inSection:0];

[_longDetailView.tableview insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];

[_longDetailView.tableview endUpdates];

[_longDetailView.scrollView mas_updateConstraints:^(MASConstraintMaker *make) {

make.bottom.mas_equalTo(_longDetailView.tableview.mas_bottom);

make.bottom.mas_greaterThanOrEqualTo(_longDetailView);

}];

}


// 回复删除一行

- (void)replyDeleteTableviewRow:(NSInteger)index{

[_longDetailView.tableview beginUpdates];

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:index inSection:0];

[_longDetailView.tableview deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

[_longDetailView.tableview endUpdates];

[_longDetailView.scrollView mas_updateConstraints:^(MASConstraintMaker *make) {

make.bottom.mas_equalTo(_longDetailView.tableview.mas_bottom);

make.bottom.mas_greaterThanOrEqualTo(_longDetailView);

}];

}



2466108-4a593254213542cf.webp.jpg

目录
相关文章
|
6月前
|
存储 数据建模 iOS开发
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
101 1
|
6月前
|
定位技术 iOS开发
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
75 0
|
监控 Android开发 iOS开发
盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容
参考代码:弹性扩缩容如何实现?System.out.println("扩容:增加直播平台实例"); currentCapacity++; } private void scaleDown() { System.out.println("缩容:减少直播平台实例");
盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容
|
移动开发 安全 前端开发
提升iOS应用安全性:全面代码混淆功能介绍,使用Ipa Guard保护你的应用
iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP进行完整性保护,防止应用程序中的代码及资源文件被恶意篡改。Ipa Guard通过修改 ipa 文件中的 macho 文件中二进制数据(代码模块配置)进行操作,无需源码。不限定开发技术平台。支持oc,swift,cocos2d-x、unity3d、quick-cocos,html5 ,react native等等各种开发技术。Ipa Guard主要包含代码混淆全面、资源文件处理、不需要源代码更安全、调试信息清理、即时测试运行。
|
移动开发 前端开发 iOS开发
记录一下前端H5的复制功能在ios端的兼容性问题
记录一下前端H5的复制功能在ios端的兼容性问题
988 0
|
30天前
|
安全 Android开发 iOS开发
Android vs iOS:探索移动操作系统的设计与功能差异###
【10月更文挑战第20天】 本文深入分析了Android和iOS两个主流移动操作系统在设计哲学、用户体验、技术架构等方面的显著差异。通过对比,揭示了这两种系统各自的独特优势与局限性,并探讨了它们如何塑造了我们的数字生活方式。无论你是开发者还是普通用户,理解这些差异都有助于更好地选择和使用你的移动设备。 ###
49 3
|
4月前
|
人工智能 搜索推荐 iOS开发
苹果发布iOS 18 Beta 4,新增CarPlay 壁纸等多项功能改进
本文首发于公众号“AntDream”,探索iOS 18 Beta 4新功能与改进: CarPlay壁纸、iCloud设置访问优化、相机控制记忆、隐藏文件夹设计变更、深色/浅色模式图标同步、股票应用图标调整、iPhone镜像功能增强、控制中心蓝牙切换键、AssistiveTouch新增Type to Siri等,以及Apple Intelligence暗示。开发者可通过苹果计划提前体验。
103 12
|
6月前
|
Android开发 数据安全/隐私保护 iOS开发
ios和安卓测试包发布网站http://fir.im的注册与常用功能
ios和安卓测试包发布网站http://fir.im的注册与常用功能
288 0
ios和安卓测试包发布网站http://fir.im的注册与常用功能
|
6月前
|
机器学习/深度学习 PyTorch TensorFlow
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
182 0