quick cocos UIListView之isItemInViewRect方法修正

quick cocos UIListView之isItemInViewRect方法修正,第1张

概述功能描述:一个滚动列表,当列表可视区域上部有内容时则上部出现向上箭头提示,当列表可视区域下部有内容则下部出现向下箭头提示。   功能实现:应用cocos studio1.6制作界面,上面放置一个背景,一个滚动列表,然后程序加载解析这个界面的json文件,应用quick3.3final下的UIListView的方法isItemInViewRect进行检测第一条与最后一条是否在可视区域内。   问题:

功能描述:一个滚动列表,当列表可视区域上部有内容时则上部出现向上箭头提示,当列表可视区域下部有内容则下部出现向下箭头提示。

功能实现:应用cocos studio1.6制作界面,上面放置一个背景,一个滚动列表,然后程序加载解析这个界面的Json文件,应用quick3.3final下的UIListVIEw的方法isItemInVIEwRect进行检测第一条与最后一条是否在可视区域内。

问题:当界面加载进来,坐标设置0,0时,isItemInVIEwRect方法判断都没问题,但当把界面调整位置时,isItemInVIEwRect方法就不能准确判断某一条目是否在列表可视区域内了

问题解决:究其原因,发现isItemInVIEwRect方法现实如下

function UIListVIEw:isItemInVIEwRect(pos)	local item	if "number" == type(pos) then		item = self.items_[pos]	elseif "userdata" == type(pos) then		item = pos	end	if not item then		return	end		local bound = item:getBoundingBox()	local nodePoint = self.container:convertToWorldspace(		cc.p(bound.x,bound.y))	bound.x = nodePoint.x	bound.y = nodePoint.y	return cc.rectIntersectsRect(self.vIEwRect_,bound)end

从实现看,首先把列表条目item转化为世界坐标,然后再判断列表可视区域vIEwRect_是否包含条目矩形区域,由此问题来了,列表条目被转化为了世界坐标,但列表可视区域vIEwRect_的坐标并没有转化为世界坐标系,这就肯定会出问题,不知道quick这样设计的初衷是什么,现把该方法修正如下:

function UIListVIEw:isItemInVIEwRect(pos)	local item	if "number" == type(pos) then		item = self.items_[pos]	elseif "userdata" == type(pos) then		item = pos	end	if not item then		return	end		local bound = item:getBoundingBox()	local nodePoint = self.container:convertToWorldspace(		cc.p(bound.x,bound.y))	bound.x = nodePoint.x	bound.y = nodePoint.y        local vIEwRectPos = self:convertToWorldspace(cc.p(self.vIEwRect_.x,self.vIEwRect_.y))    local vIEwRect = cc.rect(vIEwRectPos.x,vIEwRectPos.y,self.vIEwRect_.wIDth,self.vIEwRect_.height)        return cc.rectIntersectsRect(vIEwRect,bound)end

主要是把vIEwRect_也转化为世界坐标再进行区域交互判断即可,望对有同样问题的同胞有所帮助

总结

以上是内存溢出为你收集整理的quick cocos UIListView之isItemInViewRect方法修正全部内容,希望文章能够帮你解决quick cocos UIListView之isItemInViewRect方法修正所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1043628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存