weex picker.pick() 连续调用在iOS 11.0.2中不好用。

weed picker.pick() 连续调用在iOS 11.0.2中不好用, 在iOS10最新版本中单独的pick好用,在iOS 11.0.2中单独的pick也不好用了。有人遇到过吗?

//选择开始日期
      pickDate: function() {
        var arr = this.currentdate.split('-');  
        var year = arr[0]; //获取当前日期的年份  
        var month = arr[1]; //获取当前日期的月份  
        var day = arr[2]; //获取当前日期的日
        var year1 = parseInt(year) + 1;  
        var t2 = year1 + '-' + month + '-' + day;  
        picker.pickDate({
        value: this.currentdate,
        max: t2,
        min: '2017-01-01'
        }, event => {
          if (event.result == 'success') {
            this.date = this.formatDate(event.data);
            return this.pickTime();
          }
        })
      },
       //选择开始时间
      pickTime: function() {
        picker.pickTime({
            'value':this.currenttime
        },event => {
          if (event.result == 'success') {
            this.icontrue02=false;
            this.time = event.data;
            this.qj.datetime=this.date+" "+this.time;
            
          }
        });
      },
阅读 2.9k
2 个回答

是回调不起作用吗?(如果是的话,这是ios11的问题,ios10以下的不会出现这个问题),连续调用好像是有问题,可以考虑settimeout 个0.5秒再触发下一次,(期间关闭所有点击事件)

iOS11中UIBarbuttonItem做了修改 你可以改weex的源码WXPickerModule这个对象,给遮罩层加上代理不接收pickview区域的点击事件就可以了,你也可以扩展这个对象不动源码

  • (BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch
    {
    Ivar backgroundViewivar = class_getInstanceVariable([self class], "_backgroundView");
    UIView *backgroundView=object_getIvar(self, backgroundViewivar);
    if (touch.view==backgroundView) {

    return YES;

    }
    return NO;
    }

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题