鱿鱼
鱿鱼
  • 发布:2015-06-13 01:03
  • 更新:2015-06-14 16:12
  • 阅读:4041

IOS的下拉刷新及图文列表下拉闪烁的问题

分类:MUI

运行环境:iphone6 IOS8.3,MUI 1.8

APP结构是titlebar 加底部选项卡,就是Hello MUI中的tab-webview模式。我的子页面是一个slider加10条记录的图文列表(table-view)。然后这个页面只使用了下拉刷新。数据是ajax拉取服务器的,每次仅10条,图片资源是本地的。现在发现了2个问题:

1、下拉刷新释放后会卡住,50次能遇到个3次左右,如图

2、抛开上面的下拉。对整个页面进行滚动的时候,因为我有10条数据,比如我拉到第5条这个位置,下面应该是第6,7...条,但有时候拉的这个位置的时候(手已经释放或者没有释放的情况都会遇到),下面的位置显示是空白的,延迟1~2秒才显示出来。给我的感觉好像是才动态插入了下面的6,7....等数据,又或者是下面的数据重新渲染了一遍一样。但这个问题不是发生在我拉取了服务器数据后,第一次滚动发生。而是任何时间都有可能发生,即使我第一次滚动的时候是正常的。

JS代码

    <script>  
        var recipeView;     //查看页面对象  
        mui.init({  
              pullRefresh : {  
                container:"#refreshContainer",//下拉刷新容器标识,querySelector能定位的css选择器均可,比如:id、.class等  
                down : {  
                  contentdown : "下拉刷新",//可选,在下拉可刷新状态时,下拉刷新控件上显示的标题内容  
                  contentover : "释放立即刷新",//可选,在释放可刷新状态时,下拉刷新控件上显示的标题内容  
                  contentrefresh : "正在刷新...",//可选,正在刷新状态时,下拉刷新控件上显示的标题内容  
                  callback :loadData //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;  
                }  
              }  
        });  

        function loadData() {  
            //拉取新数据  
            mui.ajax('http://192.168.1.103/2015/czl/publish/api/web/v1/recipes/new',{  
                dataType:'json',  
                type:'get',  
                success:function(data){  
                    var html=template('test',{data:data});  //artTemplate替换Html内容  
                    mui('#refreshContainer').pullRefresh().endPulldownToRefresh();  
                    document.getElementById("list-content").innerHTML=html;  

                },  
                error:function(xhr,type,errorThrown){  
                    console.log(xhr.toString()+'martin');  
                }  
            });  

        }  
        var slider = mui("#slider");  
        slider.slider({  
            interval: 5000  
        });  

        mui.plusReady(function(){  
            loadData(); //加载数据  

            plus.navigator.closeSplashscreen(); //当处理完加载后关闭启动页  

        })  
    </script>

这是图片列表的代码,slider的代码跟demo一样的,就不上了。在以下代码中我添加了.czl-table-view


.czl-table-view-cell:after{left:0;}  
.mui-table-view .mui-media-object {line-height: 68px;max-width: 90px;height: 68px;}  

        <ul class="mui-table-view czl-table-view" id="list-content">  

            <script id="test" type="text/html">  
            {{each data as item index}}   
            <li class="mui-table-view-cell czl-table-view-cell mui-media">  
                <a href="#" id="{{item.id}}" title="{{item.title}}">  
                    <img class="mui-media-object czl-media-object mui-pull-left" src="{{item.cover}}"  width="90">  
                    <div class="mui-media-body">  
                        {{item.title}}  
                        <p class='mui-ellipsis'>{{item.intro}}</p>  
                    </div>  
                </a>  
            </li>  
            {{/each}}  
            </script>  
        </ul>
2015-06-13 01:03 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

能否发一个测试工程出来看看

鱿鱼

鱿鱼 (作者)

工程在此。@DCloud_MUI_FXY

  • DCloud_UNI_FXY

    给一个可以直接运行的测试工程,你的工程别人是运行不了的。数据接口都是你本地的

    2015-06-13 16:52

鱿鱼

鱿鱼 (作者)

@DCloud_MUI_FXY 这个,远程数据的

DCloud_UNI_FXY

DCloud_UNI_FXY

我安装了一下,在iPhone6 iOS8.3上按你说的操作测试没发现类似问题,你能否录个视频,我看看你是怎么操作的。

鱿鱼

鱿鱼 (作者)

@DCloud_MUI_FXY 刚才我用发你的demo试了下,那个释放刷新又卡住了。(滑了20次出现了4次)。刚才我就是不停地下拉刷新,但手放松点,就是不要用力按住屏幕下拉。手指与屏幕的接触刚好能够导致事件的发生。就是有点心不在焉无意识的在做这个动作。我分析是可能touch end时的问题?

滚动事件触发不能快速滚动手指。滑动屏幕的距离估计才1~3厘米。就好比你看table-view文章时,每条文章标题你都比较认真读了,每次滚动,大概只新显示了下面新三条数据。你可以这次没有出现,就滚动到顶部,然后再试。滚动的截不了图,过一会他就自动填充了。

身边没人,录不了视频。你用我上面说的方法试试。

  • DCloud_UNI_CHB

    若你使用mac电脑,通过quicktime就可以录屏,参考:http://it.sohu.com/20140919/n404467723.shtml;若没有mac电脑,手机越狱的话,找个软件就可以录屏;两者都不是的话。。。好吧,再想办法;

    2015-06-15 11:37

鱿鱼

鱿鱼 (作者)

@DCloud_MUI_FXY 截到图了

DCloud_UNI_FXY

DCloud_UNI_FXY

最好有视频,操作习惯差异可能会导致不一样结果,我按你说的试了,仍然重现不了。

  • 6***@qq.com

    我这边也会遇到这个情况, 就是拖着界面一直往下拉 然后松开 就会卡住不动了

    2017-02-10 15:06

该问题目前已经被锁定, 无法添加新回复