帖子
帖子
用户
博客
课程
显示全部楼层
11
帖子
0
勋章
82
Y币

[插件使用] UICustomPicker ios setValue无效

[复制链接]
发表于 2021-4-20 14:47:24
写的代码在安卓模拟器上可以设置 但是在苹果手机上是无法设置
Snipaste_2021-04-20_14-44-45.png

打开选择器

打开选择器
11
帖子
0
勋章
82
Y币
没有大佬来看看嘛
1
帖子
1
勋章
1149
Y币
setValue 传的id需要和open方法产生的id一致,open每调用一次都会产生新id
11
帖子
0
勋章
82
Y币
sxgsw3 发表于 2021-4-20 16:41
setValue 传的id需要和open方法产生的id一致,open每调用一次都会产生新id

我只调用了一次open方法
然后在模拟器上调用setValue修改是会生效的 -> 生效了是能进入open方法的回调看到修改结果的
然而在 苹果上就不会生效  而且没有进入open方法的回调
1
帖子
1
勋章
1149
Y币
无法复现,方法单独摘出来,看看能否复现
function UICustomPicker_open() {
        var UICustomPicker = api.require('UICustomPicker');
        UICustomPicker.open({
            rect: {
                x: 30,
                y: 300,
                w: api.frameWidth - 60,
                h: 340
            },
            styles: {
                bg: 'rgba(0,0,0,0)',
                normalColor: '#959595',
                selectedColor: '#3685dd',
                selectedSize: 36,
                tagColor: '#3685dd',
                tagSize: 10
            },
            data: [{
                tag: '时',
                scope: ['5','10','20','30'
            }, {
                tag: '分',
                scope:['10','20','30'
            }],
            rows: 3,
            fixedOn: api.frameName,
            fixed: true
        }, function (ret, err) {
            if (ret) {
                alert(JSON.stringify(ret));
            } else {
                alert(JSON.stringify(err));
            }
        });
    };



  function UICustomPicker_setValue() {
        var UICustomPicker = api.require('UICustomPicker');
        api.prompt({
            title: '请输入修改的id:',
            type: 'number'
        }, function (ret) {
            if (ret.text != '') {
                text = ret.text;
                UICustomPicker.setValue({
                    id: text,
                    data: ['5','30']
                });
            }

        })

    };





11
帖子
0
勋章
82
Y币
sxgsw3 发表于 2021-4-21 09:44
无法复现,方法单独摘出来,看看能否复现
function UICustomPicker_open() {
        var UICustomPicker = ...

还是不行 调用setValue就是在手机上就是没有生效
看控制台的console 是进入到调用setValue的函数里了 但是并没有生效 也没有修改之后的回调
    // 获取 提醒时间
    function getTime(callback) {
        getRemindTime(function (ret) {
            console.log('获取时间: ' + JSON.stringify(ret));
            // 获取开启状态
            frameExec('', "frameVM.status = " + ret.status + ";")
            // 设置星期  "days":[0,0,0,1,1,1,1]
            frameVM.date.forEach(function (item, index) {
                item.active = ret.days[index] == 1 ? true : false;
            })
            // 调用方法修改选中时间
            UICustomPickerSetValue(ret.remind_time)
        }, function (err) {
            console.log(JSON.stringify(err));
        })
    }

    function getRemind() {
        // 使用模块
        var UICustomPicker = api.require('UICustomPicker');
        // console.log(JSON.stringify($api.offset($api.dom('.remindTime-time'))));
        UICustomPicker.open({
            rect: {
                x: $api.offset($api.dom('.remindTime-time')).l,
                y: $api.offset($api.dom('.remindTime-time')).t,
                w: $api.offset($api.dom('.remindTime-time')).w,
                h: $api.offset($api.dom('.remindTime-time')).h
            },
            styles: {
                bg: 'rgba(0,0,0,0)',
                normalColor: '#7E838C',
                selectedColor: '#18191C',
                selectedSize: 18,
                tagColor: '#18191C',
                tagSize: 15,
            },
            data: [{
                tag: ':',
                // scope: '00-23'
                scope: ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
            }, {
                scope: ['00', '10', '20', '30', '40', '50']
            }],
            rows: 5,
            autoHide: false,  // 选中内容是 其他是否隐藏
            fixedOn: api.frameName,
            fixed: false,
            loop: true // 是否循环滚动
        }, function (ret, err) {
            if (ret) {
                console.log('修改时间: ' + JSON.stringify(ret));
                frameVM.time = ret.data ? ret.data.join(':') : '';
            } else {
                console.log(JSON.stringify(err));
            }
        });

        getTime();
    }

    function UICustomPickerSetValue(time) {
        console.log('setValue函数中');
        var UICustomPicker = api.require('UICustomPicker');
        UICustomPicker.setValue({
            id: 0,
            data: time
        });
    }


Snipaste_2021-04-21_10-00-41.png
1
帖子
1
勋章
1149
Y币
宋培蓝 发表于 2021-4-21 10:04
还是不行 调用setValue就是在手机上就是没有生效
看控制台的console 是进入到调用setValue的函数里了 但 ...

id是8,但修改的id是0 代码有问题

微信截图_20210421101545.png
11
帖子
0
勋章
82
Y币
sxgsw3 发表于 2021-4-21 10:16
id是8,但修改的id是0 代码有问题

啊 是我瞎了
但是我在模拟器的上测试的时候离开这个页面在进来打印这个id是不变的
但是在手机上 会变 但是没发现
感谢大佬 感谢大佬
您需要登录后才可以回帖 登录

本版积分规则