์ฐ์ Radius๊ฐ ๋จนํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํด์ ๊ทธ๊ฒ ๋ถํฐ ํด๊ฒฐํ๊ณ ์ ํ๋ค.
CornerRadius๊ฐ ์๋จนํ๋ ์ด ๋ฐฉ๋ฒ์ ์จ๋ณด์.
๐คฏ ๋๋ ์ง๊ตผ ์๋์ ๊ฐ์ ๋ชจ์์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ง๋๋ ์ค
let newsCategoryLabel: UILabel = {
let newsCategoryLabel = UILabel()
newsCategoryLabel.textAlignment = .center
newsCategoryLabel.font = .font(.bold, ofSize: 12)
newsCategoryLabel.layer.cornerRadius = 20
newsCategoryLabel.backgroundColor = .white
// TODO: - ์นดํ
๊ณ ๋ฆฌ์ ์ ์ ํ ์์์ ๋ฃ์ด์ผํฉ๋๋ค.
newsCategoryLabel.textColor = .evyBlack1
return newsCategoryLabel
}()
์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ, ๋ถ๋ช ํ ๋๋ radius๋ฅผ ์์ฑํ๋๋ฐ ์๋์ฒ๋ผ cornerRadius๊ฐ ์ ์ฉ์ด ์๋๋ ๊ฒ์ด๋ค.
๊ตฌ๊ธ๋ง ํ๋ค๊ฐ ๋ฐ๊ฒฌํ ๊ฒ, ์๋์ ์ฝ๋๊ฐ ์ ํ๋์ด์ผ ํ๋ค.
label.clipToBounds = true
๊ทผ๋ฐ, ์ด๊ฑด ๋จธ์ง?merge?
label.layer.masksToBounds = true
๐๐ป ๋๊ฐ ๋ค ์ ์ฉํ๋ฉด radius๊ฐ ์งค๋ฆฌ๊ฒ ๋๋ค. ๋๋์ฒด ๋ฌด์จ ์ฐจ์ด๊ฐ ์๊ณ ์ธ์ ์ด๋ค ์ฝ๋๋ฅผ ์ฌ์ฉํด์ผํ ๊น?
1๏ธโฃ clipTobounds
UIView ์์์ ์ธ์คํด์ค ํ๋กํผํฐ์ด์ด๋ค.
๐ Subview๊ฐ ๋ด view๋ฅผ ๋์ด์ ๊ฒฝ์ฐ, ๋ด ๋ทฐ๋ฅผ ๋๋จธ๋ก ๊ทธ๋ฆด ๊ฒ์ธ์ง ๋ง๊ฒ์ธ์ง๋ฅผ ์ค์ ํ๋ ์ธ์คํด์ค์ด๋ค. default๋ false์ด๋ค.
https://developer.apple.com/documentation/uikit/uiview/1622415-clipstobounds
์ด๊ฒ ๋ฌด์จ ๋ง์ด๋ ํ๋ฉด, SuperView ์์ SubVIew๊ฐ ์๋ค๊ณ ํ์.
์ด๋ Subview์ boudns๋ฅผ superView์ธ๋ถ๋ก ์ฎ๊ฒจ๋ฒ๋ฆฌ๋ฉด, subView๋ ์์น๊ฐ ์ด๊ธ๋์ ๊ทธ๋ ค์ง๊ฒ์ง??
๊ทผ๋ฐ ์ด๋ ๋ง์ฝ clipToBounds๊ฐ true์ด๋ฉด, subview๋ superview๋ด๋ถ์์๋ง ๊ทธ๋ ค์ง. ๊ทธ ํผ๊ทธ๋ง์์ clip ํ๋ฉด ๋ด๊ฐ ์ง์ ํ ๋ด๋ถ์์๋ง ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ์ ์๋๊ฒ์ฒ๋ผ!!
2๏ธโฃ masksToBounds
clipsToBounds๋ ๋๊ฐ๋ค๊ณ ํ๋ค. (๊ธฐ๋ฅ์!)
๊ทผ๋ฐ ๋ค๋ฅธ์ ์, masksToBounds์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๋ฉด, ์ด๊ฒ์ CALayer ํ๋กํผํฐ๋ผ๊ณ ํ๋ค. ๊ทธ๋์ ์ก์๋
label.layer.masksToBounds = true
์ด๋ ๊ฒ .layer๋ก ํธ์ถํด์ผํจ. ํธํธํธ ์ด๋ฐ์ด์ ๊ฐ ์์๊ตฐ!
๐ ์ ์๋ฅผ ํด๋ณด๋ฉด, subLayer๊ฐ ๋ด layer๋ฅผ ๋์ด๊ฐ ๊ฒฝ์ฐ, ๋ด layer ๋๋จธ๋ก ๊ทธ๋ฆด๊ฒ์ธ์ง ์๋์ง ํ๊ณ๋ฅผ ์ค์ ํ๋ ๊ฒ
https://developer.apple.com/documentation/quartzcore/calayer/1410896-maskstobounds
๐๐๐ป ์ํ!! ๐ก๐ง
cornerRadius๋ํ ๋ ์ด์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ชจ์๋ฆฌ๋ฅผ ์๋ฆฌ๊ฒ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋์ค ์ด๋ ํ๋๋ผ๋ ํด์ค์ผ๋๋๊ตฌ๋! ๋ฅผ ๊นจ๋ฌ์ ์ ์๋ค.
์ฐธ๊ณ ์๋ฃ: https://dongkyprogramming.tistory.com/15
๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ํ๋ ์ค ๋ฐ๊ฒฌํ ์ฌ์ค์ด ์๋ค.
์ฌํ๊ป ๋์์ธ์ ๊ทธ๋ ๊ฒ ํฌ๊ฒ ์ ๊ฒฝ์ฐ์ง ์๊ณ ๊ฐ๋ฐ์ ํ์ด์ ํผ๊ทธ๋ง์ ๋ด๊ธด ๋ด์ฉ์ ๋์ถฉ ๋๋์ค์ผ๋ก ๋ด์ผ๋ ค๊ณ ๋
ธ๋ ฅํ๋๋ฐ, ์ด๋ ๊ฒ ๋์์ด๋์ ์ ๋๋กํ๋ ํ์
์ ์ฒ์์ด๋ผ ์์ฃผ์ธ์ธํ๊ฒ ๊ธฐ๋กํ๋ฉด์ ํด์ผํ๋ค.
๊ทธ์ค์ ๊ณ ๋ฏผ์ค๋ฌ์ ๋ ๊ฒ์ด CorenrRadius์๋ค. ์๋๋ฉด,, ํผ๊ทธ๋ง์์ ์ค ๊ฐ์ด๋ ์ฝ๋๋ก ์ค ๊ฐ์ ๊ฐ์๋ฐ ๋ชจ์์ด ๋ค๋ฅธ๊ฒ์ด๋ค!! ๋๋์ฒด ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น?ใ ใ ใ ใ ใ ์์
์ด์จ๋ ์์ ์ฝ๋๋ฅผ ์ ์ฉํด์ cornerRadius๋ฅผ ์ ์ฉํ ๊ฒฐ๊ณผ, ์๋์ ๊ฐ์ด ์ถ๋ ฅ๋๋ค.
๋ด๊ฐ ์ํ๋ ๋ชจ์ต๊ณผ๋ ๋ค๋ฅด๊ฒ, ์ฝ๊ฐ ๋ญ๋น๊ณต ๋ชจ์์ฒ๋ผ ์์ํ๊ฒ ์๊ฒผ๋ค. ์,,, ๋๋์ฒด ์,,,! ๋ ํผ๊ทธ๋ง์์ ๋์์ด๋๊ฐ ์ค ๊ฐ์ด๋ ๋์ผํ๊ฒ ์ค๊ฑด๋ฐ!!
CornerRaidus๊ฐ ์๊ธฐ๋ ์๋ฆฌ๋ฅผ ์์์ผํ ๊ฒ ๊ฐ๋ค!
๊ฒฐ๋ก ์ ์ฐพ์ง ๋ชปํ๊ณ , radius๊ฐ 20์ด ๊ณผํ๊ฑฐ๊ฐ์๋ฐ ใ ใ ๋ฐฉ๋ฒ์ด ์๋..๋ผ๋ ์๊ฐ ๋ฟ์ด์๋ค. ๋ถ๋ช ํผ๊ทธ๋ง์์๋ 20์ ์ฃผ์ด์, ๋๋ ์ฝ๋์์ 20์ ์ค๊ฑด๋ฐ ๋๋ฌด ๊ณผํ๊ฒ ์๋ฆฌ๋ ๊ฒ๊ฐ์์ ์์๋ก ์กฐ์ ํด์ค์๋ ์๊ณ ์ด๊ฑฐ์ด๊ฑฐ,,, ์ด์ํ๋ค …
ํผ๊ทธ๋ง์์๋ ์ ์ฌ์ง์์ ์ค๋ฅธ์ชฝ ๋ฐ์์๋ ๊ฒ์ฒ๋ผ, ์ฝ๋๋ก ๋ณํํ ๋ชจ์ต์ ๋ณด์ฌ์ฃผ๋๋ฐ, ์ ๊ธฐ์๋ cornerRadius๊ฐ 26.5๋ก ์ ๋ฃ์ด์ ธ์๋ค. ๊ทผ๋ฐ ์ด๊ฑธ ์ถ๋ ฅํ๋ฉด ์ด์ผ๋๋๋ฉด!!
ใ ใ ใ ใ ใ ใ ใ ใ ์๋กท๊ฒ ์์ํ๊ณ ๊ดด์ํ ์์ธ์ง๐ญ๋ชจ์์ด ๋๋ค.
์ด๋ฆฌ์ ๋ฆฌ ์ฝ๋๋ฅผ ๋ฐ๊ฟ๋ณด๋ฉด์ ๋๋์ฒด๊ฐ ๋ญ๊ฐ ์๋ชป๋ ๊ฒ์ธ์ง ์ฐพ์๋ณด์๋ค.
1๏ธโฃ 1์ฐจ ์ถ์ธก
๋ฒํผ์ width, height ์ฌ์ด์ฆ๋ฅผ ์ฃผ๊ณ radius = 35 ์ ์ฉ
override init(frame: CGRect) {
super.init(frame: .init(origin: .zero, size: .init(width: 205, height: 50)))
self.configureUI()
}
→ ๊ทผ๋ฐ ์ด๋ ๊ฒ ์ง์ ์ ์ผ๋ก ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํด์ฃผ๊ณ , radius ๋ฅผ ์ฃผ๋ฉด, ํผ๊ทธ๋ง๋ ๋ค๋ฆ. ํผ๊ทธ๋ง์์๋ 26.5์คฌ๋๋ฐ, ์ฌ๊ธฐ์๋ 35์ ๋ ์ค์ผ ์ํ๋ ๋ฐ์ ๋ชจ์์ผ๋ก ๋์ด… ๋ฌด์จ์๋ฆฌ์ง,, ์ฝ๋๊ฐ ์๋ฆฌ๋ ์๋ฆฌ๊ฐ..?
๋ฒํผ์ ์ฌ์ด์ฆ๋ฅผ ์ง์ ์ ์ผ๋ก ์ฃผ์ง ์๊ณ , autolayout์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๊ฒฝ์ฐ ๋ค์ ๋พฐ์กฑ์ด๋ก comback
gotoButton.constraint(.widthAnchor, constant: 205)
gotoButton.constraint(.heightAnchor, constant: 50)
// ์ด๋ ๊ฒ ์คํ ๋ ์ด์์ ์ฃผ๋๊ณณ์๋ค๊ฐ ์ฃผ๊ณ ๋น๋ํด๋ณด๋ฉด?
// ์์ ์ฌ์ด์ฆ๋ ์ง์ (์์ง์๋ ๊ทผ๋ฐ ๋ทฐ๋ ๋์ผํ๊ฒ ๋์ค๋ค?)
๋ญ,, ์์ธ์ ๋๋์ฒด๊ฐ ๋ญ๊ฐ ์๋ชป๋๊ฒ์ ๋ชจ๋ฅธ์ฑ๋ก, ์ด๋ฆฌ์ ๋ฆฌ ๋ฐ๊ฟ๋ณด๋ค๊ฐ ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋๋ค.
ํ, ์ด๊ฑฐ width ๋ height์ฃผ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ค๋ฅธ๊ฑฐ๊ฐ์.
2๏ธโฃ ๋ฏธ์น!! cornerRadius๊ฐ ์ผ์ ํ ๋น์จ๋ก ์๋ฆฌ๋๊ฒ ์๋๋ผ, ๊ฐ์ง width์ height์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค๊ณ ?!?!?!?
๐ค cornerRadius๋
https://developer.apple.com/documentation/quartzcore/calayer/1410818-cornerradius
layer์ ๋ฐฐ๊ฒฝ์ ์ฌ์ฉํ๋ ๋ฅ๊ทผ ๋ชจ์๋ฆฌ๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ์ฌ์ฉ๋๋ ๋ฐ์ง๋ฆ์ ์๋ฏธํ๋ค. CGFloat๊ฐ์ ํฌ๊ฒ ์ค ์๋ก ๋ ๊ตด์ ๋ฅ ์ด ํฌ๊ฒ ๋ฐ์ํ๋ค.
์๋ฅผ๋ค์ด์ ๋ณด์.
์ด๋ ๊ฒ 100์ง๋ฆฌ ์ ์ฌ๊ฐํ์, cornerRadius = 10์ ์ฃผ๋ฉด ์ผ์ชฝ์๊ฐ ๊น์ด๋๊ฒ์ฒ๋ผ ์ ๋ ๊ฒ ๊น์ธ๋ค.
width์ height๊ฐ 50์ด๋ผ๊ณ ์น๋ฉด, ๋ด๊ฐ ๊ฐ์ฅ ๋๊ทธ๋ ๋ฒํผ์ ๋ง๋ค๊ณ ์ํ๋ค. ๊ทธ๋ฌ๋ฉด, ๊ทธ๋ฆผ์ฒ๋ผ 4๊ฐ์ ๊ตฌ์ญ์ผ๋ก ๋๋ ์ ๋ชจ์๋ฆฌ๋ฅผ ์ด ๋ค๋ฒ ๊น์ ์ ์๋๋ฐ, ๋ฐ์ง๋ฆ 25์ง๋ฆฌ ๋ก ๋ค๋ฒ์ ์งค๋ผ์ ์์ ๋๊ทธ๋ ๋ชจ์์ ๋ง๋ค ์ ์๋ค. cornerRadius = 25์ธ ์ํ์ด๋ค.
๊ทธ๋ผ ์ด์ ์ฌ๊ธฐ์, cornerRadius๊ฐ 40์ด ๋๋ฒ๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๊ฒฐ๊ตญ ์ด๋ ๊ฒ ํฐ ์์ด ์์ ์ฌ๊ฐํ์ ๋ค ๋ชจ์๋ฆฌ๋ฅผ ์๋ผ๊ฐ๊ธฐ๋๋ฌธ์, ์์ํ ๊ตฐ๊ณ ๊ตฌ๋ง ๋ชจ์๐ ์ด ๋์ฌ ๊ฒ์. ์ํ!!!! ๊ทธ๋์ ๋ด๊ฐ ์ ๋ ๊ฒ ์์ํ๊ณ ๋พฐ์กฑํ ๊ตฐ๊ณ ๊ตฌ๋ง๊ฐ ๋์๊ตฌ๋!!!!!
๋ฒํผ์ width๋ height๋ฅผ ๊ณ ๋ คํด์ radius๋ฅผ ์ฃผ์ด์ผํ๋ค๊ณ ํ๋จํ๋ค.!! ์ด๋ฅผ ๊นจ๋ซ๊ฒ ํด์ฃผ์ ,, ๊ฐ๋์ … ์ฝ๋๋ฆฌ๋ทฐ
์ด๋ ๊ฒ ๋ฌด์ฌํ ๋๋ corenrRadius์ ๋ํ ์ดํด๋ ๋ฏธ์ฐจ๊ณ ์ ์ ์ฉํด์ ์นญ์ฐฌ์ ๋ฐ์๋ค๋ ํ๋ฌธ์ด๋ค~!~! โค๏ธ
๊ทธ๋์ ์ฝ๋๋ง ์ฃผ๊ตฌ์ฅ์ฐฝ ์ณค์๋๋ฐ,, ์ด์ ์๋ฆฌ๋ฅผ ํ๋ํ๋ ๊นจ์ฐ์ณ๊ฐ๋๊น ์ฌ๋ฏธ๋๋ค... ์,,, ํ... ๐ฅน