예제 #1
0
    public static RecommendItemView Create(GameObject parent)
    {
        if (parent == null)
        {
            return(null);
        }
        GameObject        go   = NGUITools.AddChild(parent, prefab);
        RecommendItemView view = new  RecommendItemView();

        view.go     = go;
        view.sprite = go.GetComponent <UISprite>();
        return(view);
    }
    private void GenerateView()
    {
        picIdList.Clear();
        assetIdList.Clear();
        //List<Recommend> recommends = LogicController.GetRecommends();
        List <Recommend> recommends = GetTestData();

        for (int i = 0; i < recommends.Count; ++i)
        {
            RecommendItemView itemView = RecommendItemView.Create(table);
            itemView.RecommendId = recommends[i].recommendId;
            itemView.PictureId   = recommends[i].pictureId;
            PositionSerialize(recommends[i].position, out itemView.x, out itemView.y, out itemView.width, out itemView.height);
            UIEventListener.Get(itemView.gameObject).onClick = ItemClick;
            itemViewList.Add(itemView);

            Picture picture = LogicController.GetPicture(recommends[i].pictureId);
            if (picture == null)
            {
                picIdList.Add(recommends[i].pictureId);
            }
            else
            {
                Asset asset = LogicController.GetAsset(picture.assetId);
                if (asset == null)
                {
                    assetIdList.Add(picture.assetId);
                }
            }
        }
        tableComp.Reposition();
        if (picIdList.Count != 0)
        {
            GetPictureCommand cmd = new GetPictureCommand();
            cmd.Callback   = AfterGetPicture;
            cmd.PictureIds = picIdList;
            cmd.execute();
        }
        if (assetIdList.Count != 0)
        {
            GetAssetCommand cmd = new GetAssetCommand();
            cmd.Callback = AfterGetAsset;
            cmd.AssetIds = assetIdList;
            cmd.execute();
        }
        picIdList.Clear();
        assetIdList.Clear();
    }