您的位置:首页 > 移动开发 > IOS开发

iOS:点击button卡死

2016-01-08 20:13 393 查看
场景:

在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的方法
};


我就是这样解决问题的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: