public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { var cell = tableView.DequeueReusableCell(PublicationSortingCell.Key) as PublicationSortingCell; if (cell == null) { cell = new PublicationSortingCell(); } // TODO: populate the cell with the appropriate data based on the indexPath int publicationIndex = (int)indexPath.LongRow; Publication curPublication = cachedPublications[publicationIndex]; cell.TextLabel.Text = curPublication.Name; cell.TextLabel.Font = UIFont.SystemFontOfSize(14); cell.PublicationId = curPublication.BookId; cell.TextLabel.Lines = 0; CGSize expectedLableSize = TextDisplayUtil.GetStringBoundRect(curPublication.Name, UIFont.SystemFontOfSize(14), new CGSize(200, 600)); if (expectedLableSize.Height > 21) { cell.TextLabel.Frame = new CGRect(cell.TextLabel.Frame.X, cell.TextLabel.Frame.Y, 200, expectedLableSize.Height); } return(cell); }
public async override void MoveRow(UITableView tableView, NSIndexPath sourceIndexPath, NSIndexPath destinationIndexPath) { List <int> publicationIds = new List <int> (); foreach (var publication in cachedPublications) { publicationIds.Add(publication.BookId); } PublicationSortingCell sourceCell = (PublicationSortingCell)tableView.CellAt(sourceIndexPath); PublicationSortingCell desCell = (PublicationSortingCell)tableView.CellAt(destinationIndexPath); int sourceIndexAtPublicationIdList = publicationIds.IndexOf(sourceCell.PublicationId); int desIndexAtPublicationIdList = publicationIds.IndexOf(desCell.PublicationId); publicationIds.RemoveAt(sourceIndexAtPublicationIdList); publicationIds.Insert(desIndexAtPublicationIdList, sourceCell.PublicationId); await PublicationUtil.Instance.OrganiseDlsOrder(publicationIds); cachedPublications = PublicationUtil.Instance.GetPublicationOffline(); curViewController.ReloadPublicationList(); }