async void SetImage(CustomSwitchCell cell, CellTableViewCell target) { var source = cell.ImageSource; target.ImageView.Image = null; IImageSourceHandler handler = GetHandler(source); if (source != null && handler != null) { UIImage uiimage; try { uiimage = await handler.LoadImageAsync(source).ConfigureAwait(false); } catch (TaskCanceledException) { uiimage = null; } NSRunLoop.Main.BeginInvokeOnMainThread(() => { target.ImageView.Image = uiimage; target.SetNeedsLayout(); }); } else { target.ImageView.Image = null; } }
// Start of BugFix static Action SetImage(CellTableViewCell target, UIImage uiimage) { return(() => { if (target.Cell != null) { target.ImageView.Image = uiimage; target.SetNeedsLayout(); } else { uiimage?.Dispose(); } }); }
private async void SetImage(ImageCell cell, CellTableViewCell target) { ImageSource imageSource = cell.ImageSource; if (imageSource != null) { UIImage uiimage; try { uiimage = await cell.ImageSource.GetUIImage(); } catch (TaskCanceledException) { uiimage = null; } if (uiimage == null) { if (cell.ImagePlaceholder != null) { uiimage = UIImage.FromBundle(cell.ImagePlaceholder.File); } } NSRunLoop.Main.BeginInvokeOnMainThread(delegate { if (uiimage != null && cell.ImageWidth > 0 && cell.ImageHeight > 0) { target.ImageView.Image = uiimage.Scale(new CGSize((nfloat)cell.ImageWidth, (nfloat)cell.ImageHeight), 0); } else { target.ImageView.Image = uiimage; } target.SetNeedsLayout(); }); } else { target.ImageView.Image = null; } }