底牌项目中上传牌谱功能之编辑标准模式
来源:互联网 发布:淘宝嘉年华羽绒服女 编辑:程序博客网 时间:2024/04/29 09:31
在新增的牌谱功能中首先需要编辑牌谱,而编辑牌谱又分为自定义模式和标准模式,在实现标准模式的过程中就有些费脑子了。首先看效果图:
功能需求:用户按照标准模式的进行牌谱的编辑然后进行预览,最终生成牌谱显示在自己的牌谱中(是不是和自定义需求差不多)。在编辑标准模式下如果用户没有编辑某个条目那么在预览中不能显示该条目,如果用户隐藏了某个条目,同样在预览中不能显示。
现在的想法:在编辑页面放五个UITextView这样是比较简单的,虽然代码量可能大些,因为要创建五个UITextView。可相比于我在项目中的做法也不一定,我用了UITableView,而且感觉将问题复杂化了。
下面说说我使用了UITableView的做法。
先说预览页面,思路和自定义编辑牌谱相似,将编辑页面编辑的信息传递过来然后进行页面的布局,在点击完成按钮的时候生成图片,同时进行图片的上传。
至于编辑页面的实现,首先是创建UITableView,tableView上的Cell使用了自定义的Cell,Cell的子视图主要是一个UITextView(用于编辑内容)、UILabel(标题)、UIButton(显示、隐藏按钮).
难点:获取UITextView中的文字 (相对于直接创建五个UITextView获取它们的text较难)
解决难点:
在创建单元格的时候为每一个单元格中的UITextView设置代理,且代理为当前视图,同时设置UITextView的tag值。执行代理方法 代码:
- (void)textViewDidChangeSelection:(UITextView *)textView{
switch (textView.tag) {
case0:
_text1 = textView.text;
break;
case1:
_text2 = textView.text;
break;
case2:
_text3 = textView.text;
break;
case3:
_text4 = textView.text;
break;
case4:
_text5 = textView.text;
break;
default:
break;
}
}
在获取到每个UITextView中的内容后将其赋值给五个不同的字符串。下面有几种情况需要我们区别对待。
情况1:五个条目都有编辑内容,进行预览,这是最简单的情况,直接跳到预览页面并将五个条目中的内容即五个字符串传递给预览页面。
情况2:五个条目有的有编辑内容,有的没有编辑内容,这时需要进行处理(我好像又搞复杂了,我是将五个字符串添加到了一个数组中,将数组直接传递给预览页面)。如果没有编辑内容那么某个text字符串就是nil,nil是不能被添加到数组中的,这是需要将为nil的字符串设置为@“”。在预览页面,如果数组中某个元素内容为@“”那么就不显示该内容。
情况3:如果某个有内容的条目被隐藏了则在预览页面不显示此条目。首先需要在创建单元格的方法中将所有的单元格存储到一个数组中,代码:
[self.tableArraddObject:cell];
(由于单元格比较少,没有进行复用的单元格所以可以使用这种方法获取所有的Cell,还是比较笨的做法)
在预览方法中取出所有的Cell,如果Cell中的按钮被选中了就将其对应的字符串设置为@“”,代码:
for (StandardCell * cellin self.tableArr) {
if ([cell.hiddenBtnisSelected]) {
switch (cell.textV.tag) {
case0:
_text1 =@"";
break;
case1:
_text2 =@"";
break;
case2:
_text3 =@"";
break;
case3:
_text4 =@"";
break;
case4:
_text5 =@"";
break;
default:
break;
}
}
}
最终的处理都要放到预览事件中进行处理。
感觉写的还是比较冗长,不够言简意赅,继续努力吧。
- 底牌项目中上传牌谱功能之编辑标准模式
- 底牌项目中的上传牌谱功能之将视图生成图片
- 底牌项目中的选择牌谱上传功能--深刻理解UITableView复用
- 底牌项目中设置论坛中各个模块头图的代码
- IOS UITableView编辑模式中,只有移动功能
- 项目中第一次做图片上传和下载功能过程>>>
- 在项目中集成kindeditor图片上传和编辑器功能
- 项目中使用 kindeditor 的图片上传功能
- RubyOnRails在redactor中通过paperclip实现图片上传并编辑的功能
- TableView之编辑模式
- python之 python标准库(编辑ing)
- web项目开发上传功能
- vue项目中做编辑功能传递数据时遇到的问题
- ios tableView编辑模式下cell中创建多个功能
- discuz中上传文件大小修改 编辑
- asp页面中ewebeditor编辑添加一键编辑功能
- flex中dataGrid的编辑功能
- CTreeCtrl控件中添加编辑框功能
- struts2拦截器解决请求乱码和输出乱码
- 自己的项目和UCene如何整合
- php 过滤数据内容,防止XSS攻击
- React Native 学习笔记十二(嵌入原生应用 甚是坑啊)
- Vue 和 React 简单对比
- 底牌项目中上传牌谱功能之编辑标准模式
- Android组件复习之基本组件07—Spinner
- 4.5.1 二叉排序树
- 自定义相机遇到的问题
- java中的构造方法
- iOS 10 的适配问题
- 一种新型鱼眼图像轮廓提取算法
- java中UUID
- RC522读卡器 M1卡 学习总结(一)