在quick 3.3里面存在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
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
源代码只把item坐标转化成世界坐标,但是没有将viewRect_转化成世界坐标
参考自http://blog.youkuaiyun.com/chjh0540237/article/details/43986223
本文详细介绍了Quick3.3框架中isItemInViewRect方法的使用及改进方式,通过调整源代码确保item和视图矩形都转换为世界坐标,从而准确判断item是否位于可视区域内。
1万+

被折叠的 条评论
为什么被折叠?



