码迷,mamicode.com
首页 > 移动开发 > 详细

iOS:点击button卡死

时间:2014-11-19 18:43:41      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:多线程   uibutton   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:点击button卡死

标签:多线程   uibutton   block   

原文地址:http://blog.csdn.net/u013243469/article/details/41284027

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!