I have two images. First (avatar) is 640×640, second (like) is 21×20.
When I’m trying to draw second on first, I get it, but with very low quality.
Here is the code:
var bounds = targeImageView.Bounds;
CGImageAlphaInfo alphaInfo = CGImageAlphaInfo.PremultipliedLast;
CGColorSpace colorSpaceInfo = CGColorSpace.CreateDeviceRGB ();
CGBitmapContext resultBitmap = new CGBitmapContext (IntPtr.Zero, (int)bounds.Width, (int)bounds.Height, 8, 4 * (int)bounds.Width, colorSpaceInfo, alphaInfo);
resultBitmap.DrawImage (bounds, avatar.CGImage);
var likeY = 0;
var likeX = 0;
var likeHeight = (float)Math.Floor (bounds.Height / 2);
var likeWidth = likeHeight;
resultBitmap.DrawImage (new RectangleF (likeX, likeY, likeWidth, likeHeight), like.CGImage);
targetImageView.Image = UIImage.FromImage (resultBitmap.ToImage ());
Here is the avatar picture on the same image view but without upper code, just imageView.Image = avatar;

Here is the same but after drawing.

You got better eyesight than me – at least at that small size. If it’s a retina issue (I think so) then the following code should help you as it creates a context that will adjust itself to a retina (or not) display.