Пример #1
0
        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            UITableViewCell thisCell = null;

            int row = indexPath.Row;

            if (activity.RequireUsername)
            {
                if (row > 0)
                {
                    // compensate for index offset compared to row data
                    row--;
                }
                else
                {
                    // Enter name cell
                    TaskCell_NameEntry nameCell = (TaskCell_NameEntry)tableView.DequeueReusableCell(TaskCell_NameEntry.Key, indexPath);
                    nameCell.Tag = row;
                    nameCell.UpdateContent(enteredName, editName);
                    nameCell.SetNeedsUpdateConstraints();
                    nameCell.UpdateConstraintsIfNeeded();
                    return(nameCell);
                }
            }

            if (Rows[row].TaskType.IdName == "INFO")
            {
                TaskCell_Info infoCell = (TaskCell_Info)tableView.DequeueReusableCell(TaskCell_Info.Key, indexPath);
                infoCell.Tag = row;
                infoCell.UpdateContent(Rows[row]);
                thisCell = infoCell;
            }
            else if (new string[] { "MATCH_PHOTO", "TAKE_PHOTO", "TAKE_VIDEO", "REC_AUDIO", "DRAW", "DRAW_PHOTO" }.Contains(Rows[row].TaskType.IdName))
            {
                ResultTaskCell resultCell = (ResultTaskCell)tableView.DequeueReusableCell(ResultTaskCell.Key, indexPath);
                resultCell.Tag = row;
                resultCell.UpdateContent(Rows[row], startTask, resClicked);
                thisCell = resultCell;
            }
            else
            {
                TaskCell_Simple cell = (TaskCell_Simple)tableView.DequeueReusableCell(TaskCell_Simple.Key, indexPath);
                cell.Tag = row;
                cell.UpdateContent(Rows[row], startTask);
                thisCell = cell;
            }

            if (thisCell != null)
            {
                thisCell.SetNeedsUpdateConstraints();
                thisCell.UpdateConstraintsIfNeeded();
            }

            return(thisCell);
        }