Rounded Corners only on Top of a UIView

You can do this by setting a mask on your view’s layer: CAShapeLayer * maskLayer = [CAShapeLayer layer]; maskLayer.path = [UIBezierPath bezierPathWithRoundedRect: self.bounds byRoundingCorners: UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii: (CGSize){10.0, 10.}].CGPath; self.layer.mask = maskLayer; IMPORTANT: You should do this in your view’s layoutSubviews() method, so the view has already been resized from the storyboard In Swift … Read more

What’s the difference and compatibility of CGLayer and CALayer?

They are completely different, and not compatible. To be absolutely clear: it is strictly a coincidence that the word “layer” is used in both names; they are completely unrelated. CGLayers are a “special” “high performance” thingy. You could consider them “like bitmaps, but better.” Apple sat down and said “We’re sick of people using bitmaps, … Read more

Getting a screenshot of a UIScrollView, including offscreen parts

Here is code that works … – (IBAction) renderScrollViewToImage { UIImage* image = nil; UIGraphicsBeginImageContext(_scrollView.contentSize); { CGPoint savedContentOffset = _scrollView.contentOffset; CGRect savedFrame = _scrollView.frame; _scrollView.contentOffset = CGPointZero; _scrollView.frame = CGRectMake(0, 0, _scrollView.contentSize.width, _scrollView.contentSize.height); [_scrollView.layer renderInContext: UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); _scrollView.contentOffset = savedContentOffset; _scrollView.frame = savedFrame; } UIGraphicsEndImageContext(); if (image != nil) { [UIImagePNGRepresentation(image) writeToFile: @”/tmp/test.png” … Read more

How to merge two UIImages?

Hope this may help you, var bottomImage = UIImage(named: “bottom.png”) var topImage = UIImage(named: “top.png”) var size = CGSize(width: 300, height: 300) UIGraphicsBeginImageContext(size) let areaSize = CGRect(x: 0, y: 0, width: size.width, height: size.height) bottomImage!.draw(in: areaSize) topImage!.draw(in: areaSize, blendMode: .normal, alpha: 0.8) var newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() All the Best 🙂

How to Convert UIImage to CIImage and vice versa

CIImage *ciImage = [UIImage imageNamed:@”test.png”].CIImage; UIImage *uiImage = [[UIImage alloc] initWithCIImage:ciImage]; To fix the case where myUIImage.CIImage returns nil like [UIImageView image], you can instead do [CIImage imageWithCGImage:myUIImage.CGImage] – Dylan Hand Swift version: let ciImage = UIImage(named: “test.png”)!.ciImage let uiImage = UIImage(ciImage: ciImage) To fix the case where myUIImage.ciImage returns nil like you can instead … Read more