HY项目中问题总结(tableview 的细节处理以及基类的使用)
来源:互联网 发布:在淘宝上开网店程序 编辑:程序博客网 时间:2024/05/01 13:57
1. tableview sectionHeaderView 作为筛选框,点击实现弹出框
难点:因为在tableview滑动的时候,sectionheaderview是能够停滞在顶部,从而为弹出框的定位以及父控件的选择增加了困难;
解决关键:采用坐标转换,筛选按钮点击时,需要做下面两件事:
1).创建和屏幕一样或者在tableview的父控件一样大的view,颜色设置为透明
2) . 通过sectionHeaderView上面的点击按钮的frame 进行坐标转化,转化成蒙板上的坐标
CGRect newRect = [self.viewconvertRect:sectionHeaderView.selectBtn.framefromView:self.sectionheaderView];
3). 在蒙板上创建弹出框,并且在蒙板上添加手势,使蒙板从父控件移除
问题1:会出现手势冲突,因为弹出框很有可能是tableview,cell 有点击动作
解决:使用手势的代理方法,具体操作如下:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([NSStringFromClass([touch.viewclass]) isEqualToString:@"UITableViewCellContentView"]) {
returnNO;
}
returnYES;
}
问题2: 反复的点击创建,会造成性能差解决:使用懒加载的方式
2. 在基类的view上添加搜索框或者其他一些共有的控件,而遇到不同界面有的需要有得不需要,在具体界面布局的时候就容易出现frame的设置问题
解决方案:重写基类添加相同控件的方法,在界面中自己重新添加,通过代理/通知 实现界面跳转或者值传递
3. 在设置界面从本地选择图片,添加头像,要实现其他界面的时时更新/同步
问题:通常的做法是在设置里选择完图片后,保存沙盒,然后通知其他界面从沙盒中去,这样会造成反复的读取沙盒,极大的影响性能
解决方案:
1. 创建一个全局的单例对象,将图片或者个人信息保存到这个单例对象中,当用户改变个人信息(头像或者其他信息)时,发通知或者在viewwillappear中调用方法,更新数据,首先从单例对象中获取,如果获取不到在读取沙盒
2. 保存沙盒尽量放到子线程中进行
- HY项目中问题总结(tableview 的细节处理以及基类的使用)
- 项目中cookie的使用细节问题
- 小HY的四元组
- tableview的细节设置
- tableView的一些细节
- tableView以及cell的使用
- 开发中总结的一些细节问题
- iOS开发中tableView的分割线的处理问题
- 如何处理Tableview中cell的单选问题
- GreenDao的使用以及一些细节的总结
- android中ViewPage使用的细节问题
- UIKit-TableView-简单的TableView细节扩展
- PopupWindow的使用细节以及今天遇到的小问题
- 有关使用tableview的问题
- VC 中使用双缓冲以及出现的问题总结
- qt中tableview的使用
- swift中tableview的使用
- javaFx中tableview使用cellfactory进行赋值的问题
- JQuery的Dom操作
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- 王学岗WebView(一)
- HDU#1049:Climbing Worm
- web移动端事件总结
- HY项目中问题总结(tableview 的细节处理以及基类的使用)
- 设计模式(一) 基本概念
- C++预学习
- 一个由CountDownLatch引发的Bug
- C# 求解数学里的组合
- Linux使用操作命令
- LCS最长公共子序列(最优线性时间O(n))
- 做前端的能不能不学习 JavaScript 而直接学习 jQuery ?
- Android Touch时间传递机制