/// <summary> /// 处理合并单元格 /// </summary> /// <param name="isNull"></param> public Vector2 HandlerMergeCells() { var cells = TableController.Data.CellDatas.Where(p => p.RowIndex >= RowIndex && p.RowIndex <= RowIndex + RowMerge && p.ColumnIndex >= ColumnIndex && p.ColumnIndex <= ColumnIndex + ColumnMerge); Vector2 v2 = Vector2.zero; if (RowData == null || ColumnData == null) { v2.x = ColumnWidth; v2.y = RowHeigth; return(v2); } //遍历计算宽高***************************************** var columns = RowData.CellDatas.Where(p => p.ColumnIndex >= ColumnIndex && p.ColumnIndex <= ColumnIndex + ColumnMerge); var rows = ColumnData.CellDatas.Where(p => p.RowIndex >= RowIndex && p.RowIndex <= RowIndex + RowMerge); foreach (var item in columns) { v2.x += item.ColumnWidth; } foreach (var item in rows) { v2.y += item.RowHeigth; } //如果本身已经被隐藏了 if (IsNull) { //那么还得去刷新合并了的单元格 if (MergeCell != null) { MergeCell.TableCell.UpdateCellPosition(MergeCell); var MergeCellV2 = MergeCell.HandlerMergeCells(); if (MergeCell.MergeDataEvent != null) { MergeCell.MergeDataEvent.Invoke(MergeCell, MergeCellV2); } } return(v2); } foreach (var item in cells) { if (item == this) { item.IsNull = false; } else { item.IsNull = true; item.MergeCell = this; } } return(v2); }