[SwiftUI] mask versus addSubview
Published in
2 min readJul 31, 2020
This article is to compare the effects by mask versus addSubview. Let me show you my favorite work from this practice
Step 1: import one silhouette image and one signature pattern image
Step 2: Use ‘Preview ’ to remove the body or background color
Step 3: Process the images by SwiftUI
Step 3–1: on top of grey block
// introduce an grey blocklet rect = CGRect(x: 50, y: 220, width: 300, height: 200)let myImage = UIView(frame: rect)myImage.backgroundColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 0.5)// using removed background colorlet mosImage = UIImage(named: "mos.png")let mosImageView = UIImageView(image: mosImage)// using removed body colorlet silhouetteImage = UIImage(named: "mosque.png")let silhouetteImageView = UIImageView(image: silhouetteImage)// removed body color + black background + maskmyImage.mask = silhouetteImageView// removed body color+ black background + addSubviewmyImage.addSubview(silhouetteImageView)//removed background color + pattern + maskmyImage.mask = mosImageView// removed background color + pattern + addSubviewmyImage.addSubview(mosImageView)
Step 3–2: on top of signature pattern
// signature patternlet gridImage = UIImage(named: "pattern")var gridImageView = UIImageView(frame: rect)gridImageView = UIImageView(image: gridImage)// removed body color + + pattern + maskgridImageView.mask = silhouetteImageView// removed body color+ pattern + addSubviewgridImageView.frame = silhouetteImageView.framegridImageView.addSubview(silhouetteImageView)// remove background color+ maskgridImageView.mask = mosImageView// remove background + addSubviewgridImageView.frame = mosImageView.framegridImageView.addSubview(mosImageView)
My findings:
- mask: the siganature pattern will overwrite the solid region
- addSubView: the signature pattern will appear in the removed background region.
- We have two approaches to substitute the skin colors of silhouette.
Attached the codes.