• iOS:点击button卡死


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

    我就是这样解决问题的





  • 相关阅读:
    webpack性能优化-PWA(离线访问技术)
    node增删改查
    webpack性能优化
    webpack常见配置
    第一个node接口
    $refs的解释
    vue路由传参的三种基本方式
    结构体的定义
    gcc 的编译流程 和gdb的调试方法
    makefile高级用法
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5114377.html
Copyright © 2020-2023  润新知