[study#6-3] 程式手刻 emoji 表情符號 & logo-有隻黑貓
Published in
10 min readDec 20, 2018
學習 clipsToBounds 的效果
在網路上看中了卡通黑貓的造型,臉跟眼睛都可以練習用cornerRadius & clipsToBounds來做出。
眼睛形狀:用一個2比1的長方形,layer.cornerRadius數值高度相同,就可以做出一個橫的鳳眼形
let whiteView = UIView(frame: CGRect(x: 30, y: 40, width: 80, height: 40))whiteView.backgroundColor = UIColor.whitewhiteView.layer.cornerRadius = 40whiteView.clipsToBounds = true
瞳孔形狀:
let eyeleftView = UIView(frame: CGRect(x: 25, y: 0, width: 30, height: 40))eyeleftView.backgroundColor = UIColor(red: 0, green: 0.2, blue: 0, alpha: 1)eyeleftView.layer.cornerRadius = 20eyeleftView.clipsToBounds = true
瞳孔外框:
eyeleftView.layer.borderColor = UIColor(displayP3Red: 0.1, green: 0.6, blue: 0.3, alpha: 1).cgColoreyeleftView.layer.borderWidth = 5
由於並不是模仿哪個圖案一模一樣,一直在調整看怎樣好看點,
莫名的就自己玩起來了……
甚至做起眼球運動了...(感覺這應該是另個app作業才對...)
練習半圓形的微笑曲線:
let elseView = UIView(frame: CGRect(x: 0, y: -20, width: 40, height: 40))elseView.layer.borderColor = UIColor.orange.cgColorelseView.layer.borderWidth = 5elseView.layer.cornerRadius = 20elseView.clipsToBounds = truelet else2View = UIView(frame: CGRect(x: 35, y: -20, width: 40, height: 40))else2View.layer.borderColor = UIColor.orange.cgColorelse2View.layer.borderWidth = 5else2View.layer.cornerRadius = 20else2View.clipsToBounds = truelet noseView = UIView(frame: CGRect(x: 90, y: 90, width: 80, height: 40))noseView.backgroundColor = UIColor.black
noseView.clipsToBounds = truenoseView.addSubview(elseView)noseView.addSubview(else2View)faceView.addSubview(noseView)
.
(覺得不笑好像比較像貓......)
程式:
import UIKitlet blankView = UIView(frame: CGRect(x: 0, y: 0, width: 350, height: 350))let faceView = UIView(frame: CGRect(x: 50, y: 100, width: 250, height: 160))faceView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)faceView.layer.cornerRadius = 90faceView.clipsToBounds = trueblankView.addSubview(faceView)let earleftView = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))earleftView.backgroundColor = UIColor.blacklet earleftPath = UIBezierPath()earleftPath.move(to: CGPoint(x: 90, y: 50))earleftPath.addLine(to: CGPoint(x: 80, y: 150))earleftPath.addLine(to: CGPoint(x: 140, y: 110))earleftPath.close()let earleftShape = CAShapeLayer()earleftShape.path = earleftPath.cgPathearleftView.layer.mask = earleftShapelet earrightView = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 400))earrightView.backgroundColor = UIColor.blacklet earrightPath = UIBezierPath()earrightPath.move(to: CGPoint(x: 260, y: 50))earrightPath.addLine(to: CGPoint(x: 270, y: 150))earrightPath.addLine(to: CGPoint(x: 210, y: 110))earrightPath.close()let earrightShape = CAShapeLayer()earrightShape.path = earrightPath.cgPathearrightView.layer.mask = earrightShapelet whiteView = UIView(frame: CGRect(x: 30, y: 40, width: 80, height: 40))whiteView.backgroundColor = UIColor.whitewhiteView.layer.cornerRadius = 40whiteView.clipsToBounds = truelet white2View = UIView(frame: CGRect(x: 140, y: 40, width: 80, height: 40))white2View.backgroundColor = UIColor.whitewhite2View.layer.cornerRadius = 40white2View.clipsToBounds = truelet eyeleftView = UIView(frame: CGRect(x: 25, y: 0, width: 30, height: 40))eyeleftView.backgroundColor = UIColor(red: 0, green: 0.2, blue: 0, alpha: 1)eyeleftView.layer.borderColor = UIColor(displayP3Red: 0.1, green: 0.6, blue: 0.3, alpha: 1).cgColoreyeleftView.layer.borderWidth = 5eyeleftView.layer.cornerRadius = 20eyeleftView.clipsToBounds = truelet eyerightView = UIView(frame: CGRect(x: 25, y: 0, width: 30, height: 40))eyerightView.backgroundColor = UIColor(red: 0, green: 0.2, blue: 0, alpha: 1)eyerightView.layer.borderColor = UIColor(displayP3Red: 0.1, green: 0.6, blue: 0.3, alpha: 1).cgColoreyerightView.layer.borderWidth = 5eyerightView.layer.cornerRadius = 20eyerightView.clipsToBounds = truelet elseView = UIView(frame: CGRect(x: 110, y: 80, width: 30, height: 10))elseView.layer.borderColor = UIColor.orange.cgColorelseView.layer.borderWidth = 5elseView.layer.cornerRadius = 20elseView.clipsToBounds = trueblankView.addSubview(earrightView)blankView.addSubview(earleftView)whiteView.addSubview(eyeleftView)white2View.addSubview(eyerightView)faceView.addSubview(whiteView)faceView.addSubview(white2View)faceView.addSubview(elseView)blankView.addSubview(faceView)