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); }
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); } }
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); }
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); }
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; }
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); } } } ); } }; } }
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; } }