๋ฐ˜์‘ํ˜•

iOS 61

[Swift] GCD(Grand Central Dispatch)์— ๋Œ€ํ•ด์„œ

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ GCD์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. GCD์˜ ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์‹œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. GCD์˜ ๊ฐœ๋… - GCD (Grand Central Dispatch)๋Š” C๊ธฐ๋ฐ˜์˜ ์ €์ˆ˜์ค€ API๋กœ Apple์˜ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. GCD๋Š” ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ(Queue)๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํ๋Š” ๋ฐ”๋กœ ์ €ํฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” DispatchQueue์ž…๋‹ˆ๋‹ค. ์ด ํ๋Š” ๊ฐ๊ฐ์˜ ์ž‘์—…์€ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์—์„œ ์ˆ˜ํ–‰๋˜๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. (1) Serial Queue - ํ์— ์ถ”๊ฐ€๋œ ์ž‘์—…์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ž‘์—…์€ ์ด์ „ ์ž‘์—…์ด ๋๋‚˜์•ผ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. - main queue : UI ์—…๋ฐ์ดํŠธ์™€ ๊ฐ™์€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•ด..

iOS/Swift 2023.03.01

[Xcode] Xcode 14.0๋ถ€ํ„ฐ๋Š” ์–ด๋–ค๊ฒŒ ๋ฐ”๋€Œ์—ˆ์„๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹๐Ÿป ์กฐ๊ธˆ ๋Šฆ์€ ๊ฐ์ด ์žˆ์ง€๋งŒ ์ตœ๊ทผ์— ์—…๋ฐ์ดํŠธ๋œ Xcode 14.0์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. 30% ์ž‘์•„์ง„ ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฐ€์žฅ ๋จผ์ € ๋ˆˆ์— ๋„์—ˆ๋˜ ๊ฒƒ์€ ๊ธฐ์กด์˜ Xcode๋ณด๋‹ค 30% ์ •๋„ ์ž‘์•„์ง„ ๋ฐ”์ด๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ Xcode๋ฅผ ๋‹ค์šด๋ฐ›์œผ๋ ค๊ณ  ํ•  ๋•Œ ๋ณดํ†ต 10 GB ์ด์ƒ์ด ํ•„์š”ํ–ˆ์ง€๋งŒ ์ด๋ฒˆ Xcode 14.0 ๋ฒ„์ „์˜ ๊ฒฝ์šฐ 7GB ์ •๋„๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜๊ฐ€ ๋”์šฑ ์šฉ์ดํ•ด์กŒ์Šต๋‹ˆ๋‹ค. โœ“ ์–ด๋–ป๊ฒŒ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ 30% ์ •๋„ ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์—ˆ์„๊นŒ? ์œ„์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์‹œ๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด watchOS, tvOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ 30% ์ž‘์•„์งˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 2. ๊ธฐ์กด๋ณด๋‹ค 25% ๋นจ๋ผ์ง„ ๋นŒ๋“œ ์‹œ์Šคํ…œ โœ“ ๋ชจ๋“ˆ์„ ๋นŒ๋“œ ๋ฐ ๋งํฌ ๋‹จ๊ณ„์—์„œ ๋”์šฑ๋” ํ–ฅ์ƒ๋œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๊ธฐ์กด ..

iOS/Xcode 2022.11.30

[Swift] ์ •๊ทœ์‹์„ ํ†ตํ•œ ๋ฌธ์ž์—ด ํŒ๋‹จ

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ ์ •๊ทœ์‹์„ ํ†ตํ•ด ๋ฌธ์ž์—ด์„ ํŒ๋‹จํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) ์ฒซ ๋ฒˆ์งธ, ๋ฌธ์ž์—ด ์ „์ฒด๊ฐ€ ํŠน์ • ๊ทœ์น™์— ๋ถ€ํ•ฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• let myString: [String] = ["๋‚˜๋Š”", "๋ฐ”๋ณด๋‹ค", "1597", "๊ฐ€๋‚˜๋‹ค123๋ผ๋งˆ๋ฐ”4"] let pattern: String = "^[0-9]*$" // ์ˆซ์ž ์ •๊ทœ์‹ for string in myString { guard let _ = string.range(of: pattern, options: .regularExpression) else { print("\(string)์€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜์–ด์š”..") continue } print("\(string)์€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋„ค์š”!") } myString์—์„œ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ..

iOS/Swift 2022.11.14

[Swift] ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ ๋ฐ ์ˆซ์ž๋กœ ๋ฐ˜ํ™˜์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด์„œ ๋‘ ๊ฐ€์ง€๋ฅผ ์ •๋ฆฌํ•ด ๋‘๊ณ  ๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) ๋ฌธ์ž์—ด์„ ์ž๋ฅด๋Š” ๋ฐฉ๋ฒ• - string.index(string.startIndex, offsetBy: number)๋ฅผ ํ™œ์šฉํ•˜๊ธฐ - ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ์ž‘ ์ธ๋ฑ์Šค์™€ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ํ•ด๋‹น ๋ฌธ์ž์—ด์˜ range๋ฅผ ์กฐ์ •ํ•ด ์ž๋ฅธ ๋ฌธ์ž์—ด์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. var myString = "Hello, world!" let startIndex = myString.index(myString.startIndex, offsetBy: 0) let endIndex = myString.index(myString.startIndex, offsetBy: 5) let output = myString[startIndex ..< endIndex..

iOS/Swift 2022.11.12

[Swift] UITextField์—์„œ Placeholder์˜ ์ƒ‰์ƒ ๋ฐ”๊พธ๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ UITextField์˜ Placeholder์˜ ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) TextField์— ์ ‘๊ทผํ•˜์—ฌ placeholder์˜ ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋‚˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 1. ํ…์ŠคํŠธ ํ•„๋“œ ์„ ์–ธ private let myTextField: UITextField = UITextField() 2. ํ…์ŠคํŠธ ํ•„๋“œ์˜ attributedPlaceholder ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผ ๋ฐ ์›ํ•˜๋Š” ์ปฌ๋Ÿฌ๋กœ ์„ค์ • myTextField.attributedPlaceholder = NSAttributedString(string: "๋‚˜์˜ ์ปฌ๋Ÿฌ๋Š” ํŠน๋ณ„ํ•˜์ง€", attributes: [NSAttributedString...

iOS/Swift 2022.11.10

[Swift] WebView์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๋ฅผ Clear๋กœ ๋ณ€๊ฒฝ & Content Size ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ WebView์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Content Size๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) 1. WebView์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๋ฅผ Clear๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• webView์— ์ ‘๊ทผํ•ด backgroundColor๋ฅผ clear๋กœ ์กฐ์ •ํ•˜๋”๋ผ๋„ white๋กœ ๋ณด์ด๊ธธ๋ž˜ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๋‹ค ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. webView.isOpaque = false webView.backgroundColor = .clear ์œ„์™€ ๊ฐ™์ด isOpaque์˜ ๊ฐ’์„ false๋กœ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๋ฉด ์›ํ•˜๋Š” ๋Œ€๋กœ clear๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 2. WebView์˜ ์ฝ˜ํ…์ธ ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๋ฐฉ๋ฒ• webView์˜ ๋กœ๋“œ๊ฐ€ ๋๋‚˜๊ณ  ๋‚˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด d..

iOS/Swift 2022.11.09

[ Xcode ] ์ž๋™์™„์„ฑ์ด ์ž‘๊ฒŒ ๋ณด์ธ๋‹ค๊ณ ? ( automatic completion size )

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ ์ œ๊ฐ€ ๊ฒช์—ˆ๋˜ Xcode์˜ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) ๋ฉ€์ฉกํ•˜๋˜ Xcode๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ž๋™์™„์„ฑ ์ฐฝ์ด ํ•œ ์ค„๋กœ๋งŒ ํ‘œ์‹œ๋˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿฌ๋Š”์ง€ ๊ถ๊ธˆํ•ด์„œ ์—ฌ๊ธฐ์ €๊ธฐ ๋‘˜๋Ÿฌ๋ณด๋‹ˆ Xcode 10.3 ์ด์ƒ์ด๋ผ๋ฉด ๋งˆ์šฐ์Šค๋ฅผ ํ†ตํ•ด ์‚ฌ์ด์ฆˆ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ณ ์š”. ๊ทธ๋ž˜์„œ ์ง์ ‘ ํ•ด๋ดค๋Š”๋ฐ ๊ฐ€๋กœํญ ๋ฐ–์— ๋ณ€๊ฒฝ์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค : ( ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋Š”๋ฐ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆœ์„œ 1. Xcode - Preferences - Text Editing - Suggest Completion while type์„ ์ฒดํฌ ํ•ด์ œํ•˜๊ธฐ 2. Xcode ์žฌ ์‹คํ–‰ํ•˜๊ธฐ 3. Xcode - Preferences - Text Editing - Suggest Com..

iOS/Xcode 2022.09.23

[ Swift ] UITableViewCell์˜ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ ๋งค๋ฒˆ ๊นŒ๋จน๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ์ฐพ๊ฒŒ ๋˜๋Š” UITableViewCell์˜ ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋‘๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) 1. Layoutsubviews - ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋Š” UIView๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋กœ์„œ ํ•˜์œ„ ๋ทฐ๋“ค์˜ ์ •ํ™•ํ•œ ๋ ˆ์ด์•„์›ƒ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ override ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. - ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ TableViewCell์˜ ContentView์˜ ๋ ˆ์ด์•„์›ƒ์„ ์ˆ˜์ •ํ•จ์œผ๋กœ์จ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 2. ๋ฐฉ๋ฒ• - ์œ„์—์„œ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ TableViewCell ์•ˆ์—๋Š” ContentView๋ผ๋Š” UIView๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ด๊ณณ์— ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋‚˜ ํ…์ŠคํŠธ ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ Custom ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด layoutSubviews ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ContentView์˜ ์œ„์น˜๋ฅผ..

iOS/Swift 2022.09.21

[ Swift ] UIProgressView์—์„œ CornerRadius๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ UIProgressView์—์„œ TrackView์™€ Progress์˜ ConerRadius๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) ์ผ๋‹จ ProgressView๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Subviews๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์˜ค๋Š” ๊ฑธ ํ™•์ธํ•˜ ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [, ] ๋‘ ๊ฐœ์˜ ImageView๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์ฒซ ๋ฒˆ์งธ๋Š” TrackView, ๋‘ ๋ฒˆ์งธ๋Š” ์•ˆ์ชฝ์˜ Progress์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. 1. ๊ธฐ๋ณธ์ ์ธ ProgressView์˜ ๋ชจ์Šต - ProgressView์˜ TrackView์™€ Progress์˜ ์ปฌ๋Ÿฌ๋งŒ ์ •ํ•ด์ค€ ๊ฒฝ์šฐ progressView.trackTintColor = UIColor.lightGray progressView.progressTintColor = UIColor.red pr..

iOS/Swift 2022.09.20

[ Swift ] UITextField์˜ ์ขŒ์šฐ ํŒจ๋”ฉ์„ ์ฃผ๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ UITextField์˜ ์ขŒ์šฐ ํŒจ๋”ฉ์„ ์ฃผ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค : ) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. UITextField์— cornerRadius๋ฅผ ์ฃผ๊ณ  ํ™•์ธํ•ด ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปค์„œ๊ฐ€ ๊ณต๊ฐ„ ์—†์ด ๋ฐ”๋กœ ์•ž์— ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ฐฉ๋ฒ• Apple Developer Documentation developer.apple.com Apple์—์„œ์˜ ์˜๋„๋Š” ์ขŒ์ธก์ด๋‚˜ ์šฐ์ธก์— ๋ฒ„ํŠผ๊ณผ ๊ฐ™์€ component๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ฒŒ Overlay ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์†์„ฑ์€ ๋‹ค์Œ ํ”„๋กœํผํ‹ฐ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 1. leftView 2. rightView ์ด๋ฅผ width๋ฅผ ๊ฐ€์ง„ ๋ทฐ๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ๊ฐ์— ๋„ฃ์–ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. func setUserInfoTextField() ..

iOS/Swift 2022.09.19
๋ฐ˜์‘ํ˜•