iOS & swift
Parent View ๋ฐ์ Child View์์์ Touch Event
ggasoon2
2023. 11. 10. 16:50
์ ์ฌ์ง ๊ฐ์ drop down ์ฒ๋ผ
๋ถ๋ชจ๋ทฐ์ ํ๋ ์์ ํ์์ด๊ณ ์์๋ทฐ๋ ์ด๋ก์ ์์ญ์ผ ๋
๋ถ๋ชจ๋ทฐ์ ์์ญ์ธ (3)์ ์์๋ทฐ๋ ํฐ์น๊ฐ ๋๋๋ฐ (4)๋ ๋ถ๋ชจ์ ์์ญ ๋ฐ์ด๋ผ ํฐ์น๊ฐ ์๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ทฐ ์์ฒด์์ ํฐ์น๋ฅผ ๊ฐ์งํ๋ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
class CustomUIView: UIView {
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if !self.clipsToBounds && !self.isHidden && self.alpha > 0.0 {
let subviews = self.subviews.reversed()
for member in subviews {
let subPoint = member.convert(point, from: self)
if let result: UIView = member.hitTest(subPoint, with:event) {
return result
}
}
}
return super.hitTest(point, with: event)
}
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
return super.point(inside: point, with: event)
}
}
ํฐ์น ํฌ์ธํธ๋ฅผ ์์๋ทฐ์ ์ขํ๊ณต๊ฐ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋๋ค.
clipToBounds๊ฐ false์ด๋ฉฐ ๋ทฐ๊ฐ ์จ๊ฒจ์ ธ ์์ง ์๊ณ ํฌ๋ช ๋๊ฐ 0์ด ์๋๋ ํฐ์น๋ก ๋ณํํด์ฃผ๊ณ ์์ต๋๋ค.
์ถ์ฒ