[study#6-3] 程式手刻 emoji 表情符號 & logo-有隻黑貓

學習 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 = true
noseView.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)

--

--

Yolanda H.
彼得潘的 Swift iOS / Flutter App 開發教室

悠琅妲之愛梯熙緹推敲推敲潑墨坊 { iOS App | website SEO | Python | Aroma | Zumba | Chinese Poems | Tabletop game }