iOS:点击button卡死
2016-01-08 20:13
393 查看
场景:
在tableView的Cell中有一个button,我须要点击这个button然后使得其视图控制器上的一个视图改变frame,可是我点击这个button后,导致卡死,也不崩溃。所有事件失效。我本人初步觉得是线程卡死,或者事件所有传递到了我须要改变frame的那个视图上。无法分发事件。
解决:
1.使用Block解决,或者其它设计模式来传递点击消息;
2.使用多线程解决,最高效快捷;
演示样例:
我使用的是Block解决:
在tableView中声明Block
由于我须要传值,所以带有參数
我在tableView构建Cell的协议方法中,在此处加入button点击事件,并依据indexPath.row来设置button的tag值。以此来获取数据
在视图控制器初始化tableView的时候调用Block
我就是这样解决问题的
在tableView的Cell中有一个button,我须要点击这个button然后使得其视图控制器上的一个视图改变frame,可是我点击这个button后,导致卡死,也不崩溃。所有事件失效。我本人初步觉得是线程卡死,或者事件所有传递到了我须要改变frame的那个视图上。无法分发事件。
解决:
1.使用Block解决,或者其它设计模式来传递点击消息;
2.使用多线程解决,最高效快捷;
演示样例:
我使用的是Block解决:
在tableView中声明Block
由于我须要传值,所以带有參数
typedef void(^btnBlock)(ModelDiscussionList *);
@property (nonatomic,copy) btnBlock block;
我在tableView构建Cell的协议方法中,在此处加入button点击事件,并依据indexPath.row来设置button的tag值。以此来获取数据
//实现Block,而且实现传值 -(void)outLaftView:(UIButton *)button { ModelDiscussionList *model = _dataArray[button.tag]; _block(model); }
在视图控制器初始化tableView的时候调用Block
//调用Block _commentStuTableView.block = ^(ModelDiscussionList *model) { //在里面实现改变视图frame的方法 };
我就是这样解决问题的
相关文章推荐
- iOS 如何做扫码安装
- IOS中的block和retain cycle (经典)
- 【iOS】Quartz 2D绘制直线/长方形/椭圆/圆形
- 在IOS 模拟器中 输入中文
- iOS后台运行程序(一)——location
- iOS开发 获取当前正在显示的ViewController(包含Push的和presented的)
- 【转】 iOS学习之NSBundle介绍和使用
- iOS开发侧边栏
- iOS原生地图开发指南2
- IOS定位服务的应用 详解
- IOSMKMapView地图视图 详解
- iOS-获取手机健康步数,去除人为添加的数据
- 在iOS地图上绘制两点间路线
- iOS 实现渐变色
- 把删除数组里面字典文件,然后进行倒叙,删除指定的数组元素ios考核第四题
- ios 调用系统提示音教程
- 3种隐藏键盘的方法——iOS
- ios enum to string
- ios 获取文件夹大小
- 原创翻译:蓝牙(BLE)for iOS