weexSDK中的picker组件在iOS11的SDK编译下运行在iOS11设备上点击“确定”无响应

1.问题:

iOS11发布后,使用iOS11的SDK编译项目,项目中使用了weexSDK中的picker组件,组件展示和选择都没有问题,只是点击确定后,picker的回调不会进,没有任何响应和反馈;

2.代码:

var testArray = ['1','2','3']
var options = {index: 0, items: testArray}
picker.pick(options, function (ret) {
    if (ret.result == 'success') {
        //do something
    }
})

3.截图(点击图中“Done”无回调):

clipboard.png

4.尝试过的方法:
a.发现在iOS10以下系统(包括iOS10)正常使用picker组件;
b.发现使用iOS10以下SDK编译项目正常使用picker组件;
c.使用weexSDK1.2.x版本和weexSDK1.6.x版本,在iOS11SDK环境下编译出的包使用picker会有以上问题。

阅读 4.2k
5 个回答

我遇到同样问题,下载xcode9 beta版本后单个picker好用了,但是在一个pick后连续调用picker就不好使了!

除了更新没有其他办法吗?ios11.1正式版都不知道什么时候才能出,蛋疼。

补充:
注释下面2行可以暂时解决,前提是你是通过本地路径引用的 WeexSDK

ios/sdk/WeexSDK/Sources/Module/WXPickerModule.m 的 235和236行

-(void)configPickerView
{
    self.backgroundView = [self createbackgroundView];
    //UITapGestureRecognizer *tapGesture=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hide)];
//    [self.backgroundView addGestureRecognizer:tapGesture];
    self.pickerView = [self createPickerView];
    UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, WXPickerToolBarHeight)];
    toolBar.barTintColor = self.titleBackgroundColor?self.titleBackgroundColor:[UIColor whiteColor];

跟了一下底层的代码,是因为done和cancel的点击事件被背景的view的手势给覆盖了。用8.3的xcode编译可以解决这个问题。应该是xcode的问题,静待更新解决。要是着急,可以把点击背景隐藏的手势注释掉,就可以暂时回避。

新手上路,请多包涵

具体原因未知,应该是苹果系统问题,在iOS11.1中已修复,验证没有问题,问题只在iOS11.0.x的系统下

xcode9.1还在beta~~
我们团队准备切回webview 踩了太多坑 受不了

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