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

目录
相关文章
|
iOS开发
iOS 评论回复功能(新)
iOS 评论回复功能(新)
305 0
iOS 评论回复功能(新)
|
iOS开发
iOS动态高度评论框
iOS动态高度评论框
100 0
iOS动态高度评论框
|
缓存 运维 监控
如何优化iOS系统上的图文评论UI界面
在我们的社交 APP 上,⽤户的动态由精美的照⽚ 、视频和⽂字组成。对于每张照⽚和视频, 我 们都会展示出完整的标题和五个最新评论。由于⽤户喜欢使⽤标题来讲述照⽚背后的故事, 因此它们通常很⻓ 、很复杂, 并且可能包含超链 接和表情符号。渲染如此复杂的⽂本带来了⼀些问题, 它在滚动时造成性能下降。 即使在 iPhone 12 这样的新设备上, 复杂标题的初始⽂本绘制需要⻓达 50 毫秒, ⽽⽂本展示 需要⻓达 30 毫秒, 渲染速度很慢。⽂本问题还是简单问题, 有时我们需要加载更加复杂的图⽚甚⾄视频。所有这些步骤都发⽣在 UI 线程上, 导致app在⽤户滚动时丢帧。
如何优化iOS系统上的图文评论UI界面
|
测试技术 iOS开发
**IOS自动完成(搜索自动提示)功能实现
UISearchBar搜索AutoComplete下拉列表搜索提示  http://www.codeios.com/thread-10685-1-1.html   介绍:     在搜索框上加入下拉列表。
888 0
|
Android开发 iOS开发 JavaScript
iOS 混合应用的关键点分析 - 仿 Android 平台 WebView 可注入本地对象方法的功能实现要点
iOS 混合应用的关键点分析 - 仿 Android 平台 WebView 可注入本地对象方法的功能实现要点 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
977 0
|
JSON API iOS开发
iOS开发- 以图搜图功能实现 (源码+解析)
以图搜图这个功能相当实用, 之前在实现这个功能的时候, 有一些笔记, 今天就整合成博文, 分享给大家。 这个demo主要实现的功能包括: 自定义拍照界面 图像识别 以图搜图 信息获取(通过识别出的图像, 获取对应信息) 下面是一个简单的演示,  如下:       那么如何实现这样的功能呢? 如果自己去完成图像识别, 显然不现实。
1427 0
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
91 3
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2