๐นview.mask()
Last updated
Last updated
SwiftUI โฉ view โฉ drawing โฉ mask โฉ .mask()
ไธ่ฌ่่จ๏ผ็ถๆๅไฝฟ็จ๏ผใview.mask(mask)
ใ้ๆจฃ็่ชๆณๆ๏ผๆๅๆฏๆ view ็ถไฝใ่ฆ่ขซๅช่ฃ็่ฒ็ดใ๏ผ่ mask ๅๆฏ็ถไฝ่ฒ็ดใ่ฆ่ขซๅช่ฃ็ๅฝข็ใ๏ผๆไปฅๆๅๅฏไปฅๆ mask ๆณๅๆๆ็จฎใ่ฃๅ้ผๆจกใใ
ไฝๅฏฆ้ไธ๏ผๅฎ่ๅพ้ไฝ็ๆฉๅถๆฏใๆ mask ็ opacity ๅฅ็จๅฐ view ไธ้ขใ๏ผๆไปฅ mask ๅไธ็ๅ็ด ๅช่ฆ opacity > 0 (ๅๆฏ)๏ผๅจๅฎ็ธๅฐๆ็ไฝ็ฝฎไธ็ view ็ๅ็ด ๅฐฑๆไฟ็ไธไพ (้ค้ view ไธ่ฉฒ้ป opacity = 0)ใๅไน๏ผๅฆๆ mask ๅไธ็ๅ็ด opacity = 0 (่ๆฏ)๏ผ้ฃ้บผ view ไธ็ธๅฐๆ็้ปๅฐฑๆไธ่ฆไบ๏ผไนๅฐฑๅฝขๅใ่ขซ่ฃๆใไบใ
ๅจ้ ่จญ็ๆ ๆณไธ๏ผview ่ mask ๆฏๅฐ้ฝใๅทฆไธ่งใใ
โ ๏ธ ไฝๆณจๆ๏ผไธ็ฎก mask ๆฏๆๅญๆๅ็๏ผๅช่ฆๆฏ่จญๅฎไบ .frame()ใ.scaledToFit()ใ.resizable() ็ญๅ ถไธญไปปไฝไธๅ (ไธ็ฅ้ๆๆฒๆๅ ถไป็)๏ผ้ฆฌไธๆ่ฎๆใ็ฝฎไธญใๅฐ้ฝ๏ผ่ไธ้ๆ .frame() ๆๅ็ไปปไฝๅฐบๅฏธ่จญๅฎ๏ผๅฎๅ จไธๆๆน่ฎๅ็ฉไปถ็ๅคงๅฐ๏ผไนๅฐฑๆฏๅฐๆผ mask ไพ่ชช๏ผ.frame() ้คไบๅฏ่จญๅฎ็ฝฎไธญๅฐ้ฝๅค๏ผไผผไนๆฒๆไปปไฝไฝ็จใ
โ ๏ธ ๆณจๆ๏ผไธๅ mask ไธๆฆ่จญๅฎไบ .resizable() ๆ .scaledToFit()๏ผๅฎๅฐฑๆ็ธฎๆพๅฐๅฎ็ parent view ็ๅคงๅฐไธฆ็ฝฎไธญๅฐ้ฝ๏ผไธ็ฎกไฝ ๆๆฒๆ่จญๅฎ .frame()โผ๏ธ
ๅฆๅค๏ผๅฐไธ่ฌ็ view ไพ่ชช๏ผๅใ็ธฎๆพๆๆใ(.scaleEffect) ็ๆๅ๏ผ้ ่จญๆ ๆณไธ๏ผๆฏไปฅ่ชๅทฒ็ไธญๅฟ้ป็บ็ธฎๆพไธญๅฟ๏ผๅฐฑ็ฎ้ๅ view ็ถๅฅไบบ็ overlay ไนๆฏๅฆๆญคใไฝๅฐๆผไธๅ mask ไพ่ชชๅฐฑไธไธๆจฃไบ๏ผไธ็ฎก mask ๆฏใ็ฝฎไธญๅฐ้ฝใ้ๆฏใๅฐ้ฝๅทฆไธ่งใ๏ผๅฎ็็ธฎๆพไธญๅฟ้ฝๆฏใๅฎ็ parent view ็ไธญๅฟ้ปใใ
ๆๅๅจไธ้ข็ใ้่ฆ่งๅฟตใๆๆๅฐ๏ผๅฐฑๆฏ๏ผ
ๅฆๆๆๅๅฐไธๅ mask ่จญๅฎไบ .resizable() ๆ .scaledToFit() ไนๅพ๏ผๅฎๅฐฑๆ็ธฎๆพๅฐใๆดๅใ parent view ็ๅคงๅฐไธฆ็ฝฎไธญๅฐ้ฝ๏ผไธ็ฎกไฝ ๆๆฒๆ่จญๅฎ .frame()ใ
ๅฆๆ้ๆจฃ๏ผ้ฃ้บผๅ้กๅฐฑไพไบ๏ผ
ๅฆๆๆๅ่ฆๅฎๆ mask ๅจๆฏ่ฆ็ช็ไฝ็ฝฎ๏ผไฝๅไธๅธๆๅฎไฝๆปฟๆดๅๆฏ่ฆ็ช๏ผ้ฃ่ฆๆ้บผ่พฆโ
ๅ ็จ ZStack ็ถไฝๆฏ mask ็ containerใ
็ถๅพ็ซไธๅๆใ็ฝ่ฒๅๆฏ่ฒใ็ Rectangleใ
ๆๅพ่จญๅฎ mask ็ๅคงๅฐ่ไฝ็ฝฎ (ๅฆๆๆฏ ZStack ๅ งๆ่ชๅ็ฝฎไธญ)ใ
โ ๏ธ ๆณจๆ๏ผIconCard ๐ฆ ๆไฟฎๆน้๏ผๆไปฅไธๆน็็จๅผ็ขผๆฏ่็็ใ
โ