自己写picker吧,原生picker真的不是特别好用,无法定制效果。
cover-view 如何嵌套picker?目前要在地图上做一个选择器,为了避免原生层级覆盖,只能cover-view了,可是再在上面加不了picker。 求教,如何在cover-view上加选择器[图片]
2019-09-25之前使用了一个高斯模糊的实现,遇到过,不过不是那么离谱,大概差5倍是有的。
IOS上纯运算效率低下,同计算量竟然比android慢20倍业务需要在canvas上实现模糊效果,在模糊计算时发现IOS上对计算速度要慢很多倍。 提出代码片段进行测试发现,在iphone X上计算耗时(纯运算过程)22822ms, 小米 MIX 2上耗时928ms, 模拟器上运算耗时384ms。在其他ios 和android机型测试都是相同情况。两者耗时竟然相差20多倍。 iphoneX[图片] Mix 2 [图片] 模糊运算代码 [代码]function[代码] [代码]blurUint8Array(uint8Arr, width, height, blur) {[代码][代码] [代码][代码]var[代码] [代码]result = [代码][代码]new[代码] [代码]Uint8ClampedArray(width * height * 4);[代码][代码] [代码][代码]var[代码] [代码]source = uint8Arr.slice()[代码][代码] [代码][代码]var[代码] [代码]bxs = boxesForGauss(blur, 3)[代码][代码] [代码][代码]boxBlurUint8(source, result, width, height, (bxs[0] - 1) / 2)[代码][代码] [代码][代码]boxBlurUint8(result, source, width, height, (bxs[1] - 1) / 2)[代码][代码] [代码][代码]boxBlurUint8(source, result, width, height, (bxs[2] - 1) / 2)[代码][代码] [代码][代码]return[代码] [代码]result[代码][代码]}[代码] [代码]function[代码] [代码]boxBlurUint8(scl, tcl, w, h, r) {[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < h; i++) {[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]j = 0; j < w; j++) {[代码][代码] [代码][代码]var[代码] [代码]R = 0[代码][代码] [代码][代码]var[代码] [代码]G = 0[代码][代码] [代码][代码]var[代码] [代码]B = 0[代码][代码] [代码][代码]var[代码] [代码]A = 0[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]iy = i - r; iy < i + r + 1; iy++) {[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]ix = j - r; ix < j + r + 1; ix++) {[代码][代码] [代码][代码]var[代码] [代码]x = Math.min(w - 1, Math.max(0, ix))[代码][代码] [代码][代码]var[代码] [代码]y = Math.min(h - 1, Math.max(0, iy))[代码][代码] [代码][代码]var[代码] [代码]index = (y * w + x) * 4[代码][代码] [代码][代码]R += scl[index][代码][代码] [代码][代码]G += scl[index + 1][代码][代码] [代码][代码]B += scl[index + 2][代码][代码] [代码][代码]A += scl[index + 3][代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]var[代码] [代码]count = (r + r + 1) * (r + r + 1)[代码][代码] [代码][代码]var[代码] [代码]tIndex = (i * w + j) * 4[代码][代码] [代码][代码]tcl[tIndex] = R / count[代码][代码] [代码][代码]tcl[tIndex + 1] = G / count[代码][代码] [代码][代码]tcl[tIndex + 2] = B / count[代码][代码] [代码][代码]tcl[tIndex + 3] = A / count[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]function[代码] [代码]boxesForGauss(sigma, n) {[代码][代码] [代码][代码]var[代码] [代码]wIdeal = Math.sqrt((12 * sigma * sigma / n) + 1);[代码][代码] [代码][代码]var[代码] [代码]wl = Math.floor(wIdeal);[代码][代码] [代码][代码]if[代码] [代码](wl % 2 === 0) wl--;[代码][代码] [代码][代码]var[代码] [代码]wu = wl + 2;[代码] [代码] [代码][代码]var[代码] [代码]mIdeal = (12 * sigma * sigma - n * wl * wl - 4 * n * wl - 3 * n) / (-4 * wl - 4);[代码][代码] [代码][代码]var[代码] [代码]m = Math.round(mIdeal);[代码] [代码] [代码][代码]var[代码] [代码]sizes = [];[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < n; i++) sizes.push(i < m ? wl : wu);[代码][代码] [代码][代码]return[代码] [代码]sizes;[代码][代码]}[代码]
2018-09-30我以前遇到过这个问题,最终结果是放弃canvas,改用服务器生成图片方案。而且,安卓和苹果的bug方式是不同的,很有意思,唯一的相同点,就是和模拟器表现都不一致。
drawImage Api的文档错误和在部分苹果手机上的异常表现开发文档的开头是方法定义是这样的 CanvasContext.drawImage(string imageResource, number dx, number dy, number dWidth, number dHeight, number sx, number sy, number sWidth, number sHeight) 到后面: 示例代码 有三个版本的写法: drawImage(dx, dy) drawImage(dx, dy, dWidth, dHeight) drawImage(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) 从 1.9.0 起支持 两个地方 对应不起来啊,d代表目标 ,s代表源图像吧, 上面都写反了。而且第一个参数 后面没有了。这个大多数开发者能理解。 现在头疼的是部分苹果手机的drawImage(sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) 这个api绘图异常: 具体问题是 : dx,dx参数 没有效果 ,无论怎么传参,都是从0,0开始 另外就是 dWidth和dHeight参数无效,无论怎么传参都是图像原来的尺寸。 发现异常的iphone6s 手机型号如下: [图片] 显示正常的手机的型号如下: [图片] 微信版本不一样,我还没试,如果版本更新了,还不行,我就跪了...
2018-09-30实际上是chooseImage之后的显示的那个页面已经不是原来的页面了,直接返回会回到一个一模一样的页面上。页面堆栈bug。安卓无此问题,老IOS也没有,只有新一点的ios上有这个问题,你可以多找几个手机试一下。
wx.chooseImage 选择图片后返回上一页,求解决方案在 console 中出现提示 onShow 的时候不是群分享,清空 Global.lastShareInfo
2018-06-06我也很纳闷,怀疑是不是因为路径是中文之类的问题,当时是搜索一个模块里面的函数时候发现的,这个文字肯定是出现过的而且还不止一处。关键是搜索结果是0。即使是搜索wx,user这样的关键字也是0结果,才意识到这是个问题。
全局搜索有问题无法进行全局搜索,无论搜索任何东西都是返回0个结果。 页内搜索无问题。 已解决,中文路径导致的。
2018-05-25