๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 120

[ iOS ์‹œํ–‰์ฐฉ์˜ค ] URLSession์œผ๋กœ multipart/form-data ์š”์ฒญ

๐Ÿ‘ฉโ€๐Ÿ’ป๋ฐฐ๊ฒฝ๐Ÿ‘ฉโ€๐Ÿ’ป์•จ๋ฒ”์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•ด ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๋Š” ์ž‘์—…์ด ์ฃผ์–ด์กŒ๋‹ค. ์ด์ „์— ๋ช‡ ๋ฒˆ ์ด๋ฏธ์ง€๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋ฐ›์•„๋ณธ ๊ฒฝํ—˜์ด ์žˆ์–ด ๋ฌด๋ฆฌ๊ฐ€ ์—†์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๊ทธ๋•Œ๋Š” 3rd party์ธ Alamofire๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์„œ ๊ฐ„๋‹จํ–ˆ์—ˆ๊ณ  ์ง€๊ธˆ์€ Apple์˜ built-in์ธ URLSession์„ ์‚ฌ์šฉํ•ด์•ผํ•ด์„œ ๋งŽ์ด ํ—ท๊ฐˆ๋ ธ๋‹ค.   ๐Ÿ˜ฎ cURL Vs HTTPAPI๋ฌธ์„œ๋Š” ํ‘œํ˜„์˜ ์ฐจ์ด ๋“ฑ์œผ๋กœ iOS๋งŒ ์•Œ๊ณ  ์žˆ์–ด์„œ๋Š” ์™„์ „ํžˆ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋™์•ˆ ํ•ด์™”๋˜ ์„œ๋ฒ„ ์—ฐ๊ฒฐ ๊ฒฝํ—˜๊ณผ ๊ตฌ๊ธ€๋ง์„ ๋ฐ”ํƒ•์œผ๋กœ ์ง€๊ธˆ๊นŒ์ง€ ์ž˜ ์ดํ•ดํ•˜๋ฉฐ ์—ฐ๊ฒฐํ•ด์™”๋‹ค. ์˜ค๋žœ๋งŒ์— ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์„œ๋ฒ„ ์—ฐ๊ฒฐ์„ ํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ API๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค. ๋‚ด๊ฐ€ ๋”ฐ๋กœ ์ฐพ์•„ ๊ณต๋ถ€ํ–ˆ๋˜ mutipart/form-data ์—ฐ๊ฒฐ ๊ตฌ์กฐ์™€๋Š” ๋งŽ์ด ๋‹ฌ๋ผ ๋ฐฉ๋ฒ•์ด ๋‹ค์–‘ํ•œ๊ฑด๊ฐ€ ์‹ถ์–ด ๊ตฌ๊ธ€๋ง์„ ์ •๋ง ..

[ iOS ] Link Presentation ์•Œ์•„๋ณด๊ธฐ

Link Presentation | Apple Developer Documentation Fetch, provide, and present rich links in your app. developer.apple.com ๐ŸŽฌ ๊ธ€์„ ์‹œ์ž‘ํ•˜๋ฉฐ Link Presentation์€ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ Framework๋กœ, Share Sheet๋ฅผ ์ž„์˜๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ title๊ณผ content๋งŒ์œผ๋กœ ๊ตฌ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด framework๋ฅผ ์ž˜ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•˜๊ธด ์–ด๋ ต๋‹ค. ์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ์—์„œ ๋ชจ์ž„ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ๋•Œ ๋งํฌ๋ฅผ ์ฒจ๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด Link Presentation๋ฅผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋‹ค. ๊ทธ ์ „์— ๊ณต์‹ ๋ฌธ์„œ์™€ WWDC ์˜์ƒ์„ ํ†ตํ•ด Link Presentation์„ ๊ผผ๊ผผํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค. โœ‰๏ธ Link ..

iOS 2023.08.18

[ iOS ] Bounds์™€ Frame ๋น„๊ต - 2. Size

๐Ÿค” ๋ฌธ์ œ ๐Ÿค” Bounds์™€ Frame์˜ ์ฐจ์ด๋Š” ๋ญ˜๊นŒ? UIView์—๋Š” bounds ํ”„๋กœํผํ‹ฐ์™€ frame ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ด๋„ ๋‘˜์˜ ์ฐจ์ด๋Š” ํฌ๊ฒŒ ์™€๋‹ฟ์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ StoryBoad๋ฅผ ์‚ฌ์šฉํ•ด ์‹ค์Šตํ•˜๋ฉฐ View์˜ Bounds์™€ Frame์„ ๋น„๊ต ๋ถ„์„ ํ•ด๋ณด์ž! 1ํŽธ ๋ณด๊ธฐ [ iOS ] Bounds์™€ Frame ๋น„๊ต - 1. ๊ณต์‹๋ฌธ์„œ์™€ origin ๐Ÿค” ๋ฌธ์ œ ๐Ÿค” Bounds์™€ Frame์˜ ์ฐจ์ด๋Š” ๋ญ˜๊นŒ? UIView์—๋Š” bounds ํ”„๋กœํผํ‹ฐ์™€ frame ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ด๋„ ๋‘˜์˜ ์ฐจ์ด๋Š” ํฌ๊ฒŒ ์™€๋‹ฟ์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ StoryBoad๋ฅผ ์‚ฌ์šฉํ•ด ์‹ค์Šตํ•˜๋ฉฐ View์˜ Bounds์™€ Fra 88yhtserof.tistory.com 2. Size 1ํŽธ์— ์ด์–ด 2ํŽธ์—์„œ๋Š” bounds์™€ frame..

iOS 2023.07.01

[ iOS ] Bounds์™€ Frame ๋น„๊ต - 1. ๊ณต์‹๋ฌธ์„œ์™€ origin

๐Ÿค” ๋ฌธ์ œ ๐Ÿค” Bounds์™€ Frame์˜ ์ฐจ์ด๋Š” ๋ญ˜๊นŒ? UIView์—๋Š” bounds ํ”„๋กœํผํ‹ฐ์™€ frame ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ด๋„ ๋‘˜์˜ ์ฐจ์ด๋Š” ํฌ๊ฒŒ ์™€๋‹ฟ์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ StoryBoad๋ฅผ ์‚ฌ์šฉํ•ด ์‹ค์Šตํ•˜๋ฉฐ View์˜ Bounds์™€ Frame์„ ๋น„๊ต ๋ถ„์„ ํ•ด๋ณด์ž! 1. ๊ณต์‹๋ฌธ์„œ์™€ origin ๐Ÿ“š๊ณต์‹๋ฌธ์„œ ํ™•์ธํ•˜๊ธฐ Bounds์˜ ๊ณต์‹๋ฌธ์„œ /UIKit /Views and controls /UIView /bounds Instance Property bounds ์ž์ฒด ์ขŒํ‘œ ์‹œ์Šคํ…œ์œผ๋กœ ํ•ด๋‹น view์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ๊ณ„ ์‚ฌ๊ฐํ˜• ๊ธฐ๋ณธ์ ์ธ bound ์›์ ์€ (0, 0)์ด๊ณ , size๋Š” frame ํ”„๋กœํผํ‹ฐ์— ์žˆ๋Š” ์‚ฌ๊ฐํ˜•์˜ size์™€ ๋™์ผํ•˜๋‹ค. ์ด ์‚ฌ๊ฐํ˜•์˜ size ๋ณ€ํ™”๋Š” center point๋ฅผ ๊ธฐ์ค€์œผ..

iOS 2023.06.30

[ iOS/Rx ] 1. RxSwift๋ž€?

๐Ÿงš๐Ÿปโ€โ™€๏ธ์š”์•ฝ๐Ÿงš๐Ÿปโ€โ™€๏ธ Rx๋Š” Observable ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋˜๋Š” ๋น„๋™๊ธฐ์  ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์‚ฌ์šฉํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‹ค. ๊ทธ๊ฒƒ์ด ๊ธฐ๋ฐ˜์ด ๋˜์–ด Swift ์ „์šฉ์œผ๋กœ ๊ตฌํ˜„๋œ ๊ฒƒ์ด ๋ฐ”๋กœ RxSwift์ด๋‹ค. Rx๋Š” ๋น„๋™๊ธฐ์  ์ž‘์—…๊ณผ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ตฌ์„ฑ์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด์ž ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค. ์ „๋‹ฌ๋˜๋Š” ์ด๋ฒคํŠธ์— ๋ฐ”๋กœ ๋ฐ˜์‘ํ•˜์—ฌ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค. Reactive ๊ตฌ์„ฑ ์š”์†Œ๋กœ๋Š” Observable(๊ด€์ฐฐ๋Œ€์ƒ), Operator(์—ฐ์‚ฐ์ž), Observer(๊ด€์ฐฐ์ž)๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ด€์ฐฐ์ž๊ฐ€ ๊ด€์ฐฐ๋Œ€์ƒ์„ ๊ตฌ๋…(Subscribe)ํ•ด์•ผ๋งŒ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ๋ฆ„๋“ค์ด ์ด๋ฒคํŠธ์— ๋‹ด๊ฒจ Observable์—์„œ ์‹œ์ž‘ํ•ด Operator์„ ๊ฑฐ์ณ Observer์—๊ฒŒ ๋„๋‹ฌํ•œ๋‹ค. ๋น„๋™๊ธฐ ์ž‘์—… Rx์— ๋Œ€ํ•ด ์•Œ๊ธฐ ์ „ ..

iOS/Rx 2023.06.27

[ iOS ] ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ / ์ง๋ ฌ๊ณผ ๋™์‹œ์„ฑ

๊ณต๋ถ€ ๋ฐฐ๊ฒฝ RxSwift๋ฅผ ๊ณต๋ถ€ํ•˜๋ ค ํ•˜๋Š”๋ฐ ๊ทธ์ „์— ๋จผ์ € ๋น„๋™๊ธฐ์— ๋Œ€ํ•ด ์ž˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ๋ฅผ ๋ฐฐ์› ์ง€๋งŒ ์ œ๋Œ€๋กœ ์•„๋Š” ๊ฒƒ ๊ฐ™์ง€ ์•Š์•„ ์ด๋ฒˆ ๊ธฐํšŒ์— ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ , ํ•จ๊ป˜ ์ง๋ ฌ๊ณผ ๋™์‹œ์„ฑ๋„ ๊ณต๋ถ€ํ•ด์„œ 4๊ฐ€์ง€์˜ ์ฐจ์ด๋ฅผ ๋ถ„๋ช…ํžˆ ์•Œ๊ณ ์ž ํ•œ๋‹ค. ๊ธฐ๋ณธ ์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์„ ๋•Œ์—๋Š” ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…์ด ์ฒ˜๋ฆฌ๋œ๋‹ค. ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ชจ๋“  ์ผ์„ ์ „๋ถ€ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜์–ด ํ™”๋ฉด ๋กœ๋“œ๊ฐ€ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋“ฑ ๋ฌธ์ œ๊ฐ€ ๋งŽ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์•ˆ ์ข‹๊ฒŒ ๋งŒ๋“ค์–ด์„œ ์šฐ๋ฆฌ๋Š” ์ฃผ์˜ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ๋Š” ๋‘˜๋‹ค ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋กœ ์ž‘์—…์„ ๋ณด๋‚ธ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ๋‹ค. ๋‘˜์˜ ์ฐจ์ด์ ์€ ์ž‘์—…์„ ๋ณด๋‚ด๋†“๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋Š๋ƒ(Block) ๋˜๋Š” ๋‹ค์Œ์œผ๋กœ ํ•ด์•ผํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š๋ƒ์˜ ์ฐจ์ด์ด๋‹ค. ๋™๊ธฐ๋Š” ์ž‘์—…์„ ๋ณด๋‚ด๋†“๊ณ  ๊ทธ ์ž‘์—…์ด..

iOS 2023.06.22

[ iOS ] CollectionView์˜ Section ์ˆจ๊ธฐ๊ธฐ - CompositionalLayout

CollectionView์˜ Section CollectionView๋Š” ์—ฌ๋Ÿฌ Section์„ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” App Store์ด๋‹ค. ์•„๋ž˜ ์‚ฌ์ง„์„ ๋ณด๋ฉด ์•„๋ž˜๋กœ๋„ ์Šคํฌ๋กค์ด ๋˜๋ฉฐ ์—ฌ๋Ÿฌ ๋‹จ๋ฝ์œผ๋กœ ๋‚ด์šฉ์ด ๋‚˜๋‰˜์–ด์ ธ ์žˆ๊ณ  ๊ฐ ๋‹จ๋ฝ์ด ๊ฐ€๋กœ๋กœ ์Šคํฌ๋กค์ด ๋˜์–ด ์—ฌ๋Ÿฌ ์•„์ดํ…œ๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค. ์•ฑ์Šคํ† ์–ด์ฒ˜๋Ÿผ ํ•ญ์ƒ collectionView์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ ๋ฉ”๋ชจ, ๋‹ค์ด์–ด๋ฆฌ๋ฅผ ์ €์žฅ ๋ชฉ์  CollectionView๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ์ „์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค ์‚ญ์ œํ•œ ๊ฒฝ์šฐ์—๋Š” CollectionView๊ฐ€ ๋ฐ์ดํ„ฐ ์—†์ด ๋นˆ ๊ณต๊ฐ„์œผ๋กœ ์žˆ์–ด์•ผ ํ•œ๋‹ค. Section์ด ํ•˜๋‚˜๊ฑฐ๋‚˜ ๋งˆ์ง€๋ง‰ Section์ด๋ผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋”๋ผ๋„ ๋ฌธ์ œ๋˜์ง€ ์•Š์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ๋˜๋Š” ์ค‘๊ฐ„ Section์ด๋ผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋‹ค์Œ Section๊นŒ์ง€ ๊ทธ์ € ํ……..

iOS 2023.03.06

[ iOS ์‹œํ–‰์ฐฉ์˜ค ] CollectionView์˜ Section ์ˆจ๊ธฐ๊ธฐ -CompositionalLayout

๐Ÿ‘ฉโ€๐Ÿ’ป๋ฐฐ๊ฒฝ๐Ÿ‘ฉโ€๐Ÿ’ป ์›๋ž˜ Section์ด ํ•œ ๊ฐœ์˜€๋˜ collection view๋ฅผ ๋‘ ๊ฐœ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์•„์ดํ…œ์ด ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด ๊ทธ๋ƒฅ ํ……- ๋นˆ ๊ณต๊ฐ„์ด ๋‚จ๊ฒŒ ๋˜์–ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์ข‹์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์•„ ์•„์ดํ…œ์ด ์—†์„ ๊ฒฝ์šฐ Section์„ ์ˆจ๊ธฐ๊ณ ์ž ๊ณ„ํšํ–ˆ๋‹ค. How to deal with empty items section Section์„ ์ ‘๋Š” ๊ฑด ์ž์ฃผ ๋ณด์ด๋Š” ๊ธฐ๋Šฅ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ด€๋ จ ๋ฉ”์„œ๋“œ๋‚˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ ๊ณต์‹๋ฌธ์„œ์„ ์—ด์‹ฌํžˆ ์ฐพ์•„๋ณด์•˜์ง€๋งŒ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์ง€ ๋ชปํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ๋˜ ์—ด์‹ฌํžˆ ๊ตฌ๊ธ€๋ง์„ ํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž์ฃผ ๋ดค๋˜ Section ์ˆจ๊น€ ๊ธฐ๋Šฅ์€ ๋ณดํ†ต TableView๋ฅผ ํ™œ์šฉํ•œ ๊ฒƒ์ด๊ฑฐ๋‚˜ FlowLayout์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์ด์—ˆ๋Š”๋ฐ, ๋‚˜๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ Section์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค ๊ณ„ํš์ด..

[ iOS ์‹œํ–‰์ฐฉ์˜ค ] CollectionView ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ (Performing reloadData as a fallback โ€” Invalid update)

๐Ÿ‘ฉโ€๐Ÿ’ป๋ฐฐ๊ฒฝ๐Ÿ‘ฉโ€๐Ÿ’ป CollectionView๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด cell ์‚ญ์ œ, ์ถ”๊ฐ€, ๋ณ€๊ฒฝ ๋“ฑ ๋‹ค์–‘ํ•œ ์ด์œ ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋•Œ reloadData, reloadSection, deletedItem, insertItem ๋“ฑ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ๊ด€๋ จํ•˜์—ฌ CollectionView์˜ ๋ ˆ์ด์•„์›ƒ์„ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์œ ํšจํ•˜์ง€ ์•Š์€ ์—…๋ฐ์ดํŠธ [UICollectionView] Performing reloadData as a fallback โ€” Invalid update: invalid number of items in section 0. ... deleteItem ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด CollectionView๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค ํ•˜๋Š”๋ฐ ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  collectionView์— ์–ด๋– ํ•œ ๋ณ€ํ™”๋„ ์—†์—ˆ๋‹ค..

[ iOS ] ScrollView ํ™”๋ฉด ์บก์ณํ•˜๊ธฐ (Image Creation)

๋ฌธ์ œ๋ฌด๋‹ค, ๊พธ์ฃผ๋‹ˆ ๋“ฑ ๋ช‡๋ช‡ ์•ฑ๋“ค์€ ํ™”๋ฉด์„ ์บก์ณํ•œ ๋“ฏ ์ด๋ฏธ์ง€ํ™”ํ•ด ์ €์žฅ ๋˜๋Š” ๊ณต์œ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์˜ค๋Š˜์€ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์˜ˆ์ •์ธ๋ฐ, ํ™”๋ฉด ์บก์ณ์—์„œ ๋” ๋‚˜์•„๊ฐ€ ํ™”๋ฉด ๋ฐ– ์•„๋ž˜๋กœ ๋‚ด์šฉ์ด ๊ณ„์† ์ด์–ด์ง€๋Š” ScrollView์˜ ์ „์ฒด ํ™”๋ฉด์„ ์บก์ณํ•˜๋Š”, ์ฆ‰ ์ด๋ฏธ์ง€ํ™”ํ•˜๋Š” ์ž‘์—…์„ ์ •๋ฆฌํ•  ๊ฒƒ์ด๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์—ฌ UIActivityViewController๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋ฏธ์ง€๋ฅผ ์ธ์Šคํƒ€๊ทธ๋žจ์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. UIGrapics~UIKit์—๋Š” Image์™€ PDF ์„ ์ƒ์„ฑํ•˜๊ณ  Drawing ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜๋“ค์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฒˆ์— ์•Œ์•„๋ณผ ํ•จ์ˆ˜๋Š” Image์™€ PDF์˜ Image Creation ํŒŒํŠธ์— ๋‚˜์˜ค๋Š” ํ•จ์ˆ˜ ์ค‘ ์•„๋ž˜ 3๊ฐœ์™€ Drawing์˜ Shadows/Graphics Context Promitives์˜ ํ•จ์ˆ˜..

iOS 2023.02.18
728x90