Пример #1
0
    static void FadeOutDestroy(BubbleCell b)
    {
        var go  = b.go;
        var mat = b.mat;

        b.color = 0;
        b.go    = null;
        b.mat   = null;
        if (go != null)
        {
            var scale = go.transform.localScale;
            go.transform.DOScale(scale * 2, TweenTime);
        }
        FadeOutBubble(
            mat,
            () => {
            if (go != null)
            {
                var parent          = go.transform.parent;
                go.transform.parent = null;
                UnityEngine.Object.DestroyObject(go);
                go = null;
                if (parent != null && parent.childCount == 0)
                {
                    UnityEngine.Object.DestroyObject(parent.gameObject);
                }
            }
        }
            );
        //b.go.gameObject.transform.GetChild(0).gameObject.SetActive(true);
    }
Пример #2
0
            nfloat CalculateHeightFor(ChatDetayDTO msg, UITableView tableView)
            {
                var Boll = msg.text.Split('#');

                if (Boll.Length <= 1)//Resim
                {
                    int index = -1;
                    if (ME.id == msg.receiverId) //GelenMesaj
                    {
                        index = 0;
                    }
                    else
                    {
                        index = 1;
                    }
                    BubbleCell cell = sizingCells[index];
                    if (cell == null)
                    {
                        cell = sizingCells[index] = (BubbleCell)tableView.DequeueReusableCell(GetReuseId(msg));
                    }

                    cell.Message = msg;

                    cell.SetNeedsLayout();
                    cell.LayoutIfNeeded();
                    CGSize size = cell.ContentView.SystemLayoutSizeFittingSize(UIView.UILayoutFittingCompressedSize);

                    return(NMath.Ceiling(size.Height) + 1);
                }
                else
                {
                    return(NMath.Ceiling(200f) + 1);
                }
            }
Пример #3
0
            public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
            {
                BubbleCell   cell = null;
                ChatDetayDTO msg  = messages[indexPath.Row];

                cell                 = (BubbleCell)tableView.DequeueReusableCell(GetReuseId(msg));
                cell.Message         = msg;
                cell.BackgroundColor = UIColor.Clear;
                return(cell);
            }
Пример #4
0
        nfloat CalculateHeightFor(Message msg, UITableView tableView)
        {
            var        index = (int)msg.Type;
            BubbleCell cell  = sizingCells[index];

            if (cell == null)
            {
                cell = sizingCells[index] = (BubbleCell)tableView.DequeueReusableCell(GetReuseId(msg.Type));
            }

            cell.Message = msg;

            cell.SetNeedsLayout();
            cell.LayoutIfNeeded();
            CGSize size = cell.ContentView.SystemLayoutSizeFittingSize(UIView.UILayoutFittingCompressedSize);

            return(NMath.Ceiling(size.Height) + 1);
        }
Пример #5
0
        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            BubbleCell cell = null;
            Message    msg  = messages[indexPath.Row];

            cell         = (BubbleCell)tableView.DequeueReusableCell(GetReuseId(msg.Type));
            cell.Message = msg;

            return(cell);
            //bool isLeft = false;
            //Message msg = messages[indexPath.Row];
            //MessageType str = msg.Type;
            //if(str==MessageType.Incoming)
            //{
            //    isLeft = true;
            //}
            //var cell = tableView.DequeueReusableCell(isLeft ? BubbleCell.KeyLeft : BubbleCell.KeyRight) as BubbleCell;
            //if (cell == null)
            //    cell = new BubbleCell(isLeft);
            //cell.Update(msg.Text);
            //return cell;
        }
Пример #6
0
    static void DropDestroy(BubbleCell b)
    {
        var go  = b.go;
        var mat = b.mat;

        b.color = 0;
        b.go    = null;
        b.mat   = null;
        if (go != null)
        {
            var t = go.transform.DOShakePosition(1.0f, 0.25f, 20);
            t.onComplete += () => {
                if (go != null)
                {
                    var pos = go.transform.localPosition;
                    pos.y += 4.0f;
                    go.transform.DOLocalMove(pos, TweenTime * 2);
                    FadeOutBubble(
                        mat,
                        () => {
                        if (go != null)
                        {
                            var parent          = go.transform.parent;
                            go.transform.parent = null;
                            UnityEngine.Object.DestroyObject(go);
                            go = null;
                            if (parent != null && parent.childCount == 0)
                            {
                                UnityEngine.Object.DestroyObject(parent.gameObject);
                            }
                        }
                    }
                        );
                }
            };
        }
    }
Пример #7
0
 void NewLine(bool withAnimation = true)
 {
     if (m_bubbleDataOffset >= 0)
     {
         var curOffsetY = m_bubbleDataOffset--;
         var srcLine    = m_bubbleLevelData[curOffsetY];
         if (m_loop && m_bubbleDataOffset < 0)
         {
             m_bubbleDataOffset = m_bubbleLevelData.Length - 1;
         }
         for (int i = 0; i < m_buffer.Count; ++i)
         {
             _MoveToNextLine(m_buffer[i].cells, withAnimation);
         }
         var lineRoot = new GameObject(String.Format("line-{0}", m_totalLine)).transform;
         lineRoot.parent     = m_cellRoot;
         lineRoot.localScale = Vector3.one;
         var newLine  = new CellLine();
         var newCells = new BubbleCell[srcLine.Length];
         for (int i = 0; i < srcLine.Length; ++i)
         {
             var        dx  = m_bubbleRadius * i + m_bubbleRadius;
             var        tag = m_bubbleLevelData[curOffsetY][i];
             GameObject go  = null;
             Material   mat = null;
             if (tag != 0)
             {
                 go                  = UnityEngine.Object.Instantiate <GameObject>(m_bubbleGO);
                 go.name             = String.Format("cell-{0}", i);
                 go.transform.parent = lineRoot;
                 var dstPos = new Vector3(dx, m_bubbleRadius, 0);
                 if (withAnimation)
                 {
                     var srcPos = new Vector3(dx, -m_bubbleRadius, 0);
                     go.transform.localPosition = srcPos;
                     var t = go.transform.DOLocalMove(dstPos, TweenTime);
                     m_levelUpdating = true;
                     t.onComplete   += () => {
                         m_levelUpdating = false;
                     };
                 }
                 else
                 {
                     go.transform.localPosition = dstPos;
                 }
                 mat = go.GetComponent <Renderer>().material;
                 FadeInBubble(mat, tag);
             }
             var bi = new BubbleCell {
                 x     = i,
                 y     = 0,
                 go    = go,
                 mat   = mat,
                 color = tag,
             };
             newCells[i] = bi;
         }
         newLine.cells = newCells;
         newLine.root  = lineRoot;
         m_buffer.Add(newLine);
         ++m_totalLine;
     }
 }