public override nfloat GetHeightForRow(UITableView tableView, NSIndexPath indexPath) { Book book = null; if (indexPath.Section == 0) { if (availability == Availability.BOTH || availability == Availability.ONLY_MYBOOKS) { book = myBooks[indexPath.Row]; } else { book = availableBooks[indexPath.Row]; } } else { book = availableBooks[indexPath.Row]; } if (book != null) { PopoverSearchResultView resultView = new PopoverSearchResultView(book, new CGRect(0, 0, RESULT_WIDTH, RESULT_HEIGHT)); if (!dictionary.ContainsKey(indexPath)) { dictionary.Add(indexPath, resultView); } return(resultView.Frame.Height); } return(0); }
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { UITableViewCell cell = tableView.DequeueReusableCell("PopoverSearchIdentifier"); try { if (cell == null) { cell = new UITableViewCell(UITableViewCellStyle.Default, "PopoverSearchIdentifier"); } else { foreach (UIView subview in cell.ContentView) { if (subview.Tag == -1) { subview.RemoveFromSuperview(); } } cell.BackgroundView = null; } cell.Accessory = UITableViewCellAccessory.None; cell.SelectionStyle = UITableViewCellSelectionStyle.Default; if (dictionary.ContainsKey(indexPath)) { PopoverSearchResultView resultView = dictionary[indexPath]; resultView.Tag = -1; cell.ContentView.AddSubview(resultView); } } catch (Exception ex) { Logger.WriteLineDebugging("PopoverSearchDataSource - GetCell: {0}", ex.ToString()); } return(cell); }