์ฑ์ ๋ง๋ค๋ค๋ณด๋ฉด,
์ฌ๋ฌ ๊ฐ์ ๋ฒํผ์ด ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ํ๋ฉด์ ๋ง๋ค์ด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ๋๋ค.
์ ํ๋ฉด์ฒ๋ผ ๋ง์ด์ฃ !
์ฒ์์ ์ด ์ฑ์ ๋ง๋ค ๋, '๋
ธ๊ฐ๋ค๊ฐ ๋ฐ๋ก ์๊ตฌ๋.' ์๊ฐํ์ต๋๋ค.
9๊ฐ์ ๋ฒํผ์ ๋ชจ๋ ํ๋ํ๋ Outlet ์ฐ๊ฒฐ์ ํ๊ณ ,
๋ฒํผ์ด ํด๋ฆญ๋์ ๋, ์ด๋ค ๊ธฐ๋ฅ์ ํด์ผํ๋์ง 9๊ฐ์ Action์ ์ฐ๊ฒฐํ๊ฑฐ๋ ์!
์ด๋ ๊ฒ ํ๋ค๋ณด๋, ๊ฐ์ ์ฝ๋๊ฐ ์ฌ๋ฌ ๋ฒ ์ ํ์์ผ๋ ์ฝ๋๋ ์์ฒญ ๊ธธ์ด์ก์ต๋๋ค.๐
์ด๋ฐ ๋ถ๋ถ๋ค์ ๊ฐ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ํ๋ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค!
๋ฐ๋ก! tag๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
์คํ ๋ฆฌ๋ณด๋์์ ์์๋ค์ ํด๋ฆญํด์ ์ฐ์ธก ์ธ์คํํฐ ์์ญ์ ์ดํด๋ณด๋ฉด,
์ด๋ ๊ฒ Tag๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ง์ฝ ๋ฒํผ 3๊ฐ๋ฅผ ๋ง๋ค์๋ค๊ณ ๊ฐ์ ํ๋ค๋ฉด,
๋ฐ๋ก ์ด tag๋ฅผ ํ์ฉํด์ ์ด๋ค ๋ฒํผ์ ๋๋ ๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์์ ์์์ฒ๋ผ 9๊ฐ์ ๋ฒํผ์ ์๋์ง๋ง,
๋น์ทํ๊ฒ Button 3๊ฐ์ Label 3๊ฐ๋ฅผ ๋ง๋ค์ด ๋ด
์๋ค.
(button1, button2, button3 / Label1, Label2, Label3)
๊ทธ๋ฆฌ๊ณ ๋ฒํผ ํ์ดํ๋ ๋ฃ์ด์ฃผ๊ฒ ์ต๋๋ค.
(๋ฒํผ1, ๋ฒํผ2, ๋ฒํผ3)
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ Outlet ์ฐ๊ฒฐ์ ํด์ค๋๋ค.
๊ทธ๋ฐ ๋ค์ Button์ Action์ ์ฐ๊ฒฐํด์ค๊ฑด๋ฐ,
3๊ฐ์ Button์ ํ๋ํ๋ ์ฐ๊ฒฐํ์ง ์๊ณ , ํ๋๋ง ์ฐ๊ฒฐํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์ผ์ชฝ ์ฝ๋ ์์ญ์์ ์ข์ธก +๋ถ๋ถ์ dragํด์
2๋ฒ์งธ ๋ฒํผ, 3๋ฒ์งธ ๋ฒํผ ์์๋๋ก ์ฐ๊ฒฐํด์ค๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํ๊ณ , print("ํด๋ฆญ๋จ")์ ์ฐ๊ณ ,
์คํํด์ ๋ฒํผ 3๊ฐ๋ฅผ ๊ฐ๊ฐ ํด๋ฆญํด๋ณด๋ฉด
๋ชจ๋ ํด๋ฆญ์ด ๋๋ ๊ฒ์ ํ์ธํ ์ ์์๊ฒ๋๋ค.
๋ค์์ผ๋ก ์คํ ๋ฆฌ๋ณด๋๋ก ๊ฐ์
๊ฐ๊ฐ์ ๋ฒํผ์ tag ๋ฒํธ๋ฅผ ๋ถ์ฌํด์ค๋๋ค.
(button1: 0 / button2: 1 / button3: 2)
IBAction์ผ๋ก ์ฐ๊ฒฐํ ๋ถ๋ถ์ ์ ๋ณด๋ฉด, ๋งค๊ฐ๋ณ์ ๋ถ๋ถ์ (_ Sender: UIButton)๋ผ๊ณ ์์ต๋๋ค.
์ ๊ฒ์๊ธ์์ ์ ๋ฆฌํ๋ฏ!
_๋ ์์ผ๋์นด๋์๋ณ์, sender๋ ๋ด๋ถ ๋งค๊ฐ๋ณ์(Parameter Name) ์
๋๋ค.
์ด ํจ์ ๋ด๋ถ์์ sender๋ผ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋๊ฑฐ์ฃ !
๋ญ์ง ๋ชจ๋ฅผ๋ ๊ทธ๋ฅ print ์ฐ์ด๋ด
์๋ค.
print(sender)๋ฅผ ํด๋ณผ๊น์?
sender๋ฅผ print ์ฐ์ด๋๊ณ , button1์ ๋๋ฌ๋ดค์ต๋๋ค.
๋ญ๊ฐ ์๋ฉ ๋์์๋๋ฐ, ๋ฒํผ1์ ๋ํ ์ ๋ณด๋ค์ด ๋ด์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทผ๋ฐ, ํ์ดํ์ ๋ํ ์ ๋ณด๋ฅผ ์๊ณ ์ถ์ ๊ฒฝ์ฐ
๋๋ฌด ๋ง์์ ์ด๋ค๊ฒ ํ์ดํ์ธ์ง ์ ์ ์์์์?
์ฌ๊ธฐ์ 'currentTitle'์ด๋ผ๋ ๊ฒ์ ์ฌ์ฉํด๋ณผ๊ฒ๋๋ค.
@IBAction func button1Clicked(_ sender: UIButton) {
print(sender.currentTitle)
}
์ด๋ ๊ฒ ์์ฑํ ๋ค์ ์คํํด์ ๊ฐ๊ฐ์ ๋ฒํผ์ ํด๋ฆญํด๋ณด๋ฉด,
์ต์
๋์ด์ง๋ง, ๊ฐ ๋ฒํผ์ ์ง์ด์ค title์ ๋ง๊ฒ ๋ค๋ฅด๊ฒ ์ฐํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
ํ์ดํ ๋ง๊ณ ๋
์ด๋ ๊ฒ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ฐ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.โบ๏ธ
์ด currentTitle๋ฅผ ํ์ฉํด์ ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ด๋ณด๋ฉด!
if sender.currentTitle! == "๋ฒํผ1" {
oneCount += 1
label1.text = "\(oneCount)๋ฒ"
} else if sender.currentTitle! == "๋ฒํผ2" {
twoCount += 1
label2.text = "\(twoCount)๋ฒ"
} else {
if sender.currentTitle! == "๋ฒํผ3" {
threeCount += 1
label3.text = "\(threeCount)๋ฒ"
}
}
์ด๋ฐ ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ผ๋ฉด,
๋ฒํผ 1์ ํด๋ฆญํ์ ๋, Label1์ด
๋ฒํผ 2์ ํด๋ฆญํ์ ๋, Label2์ด
๋ฒํผ 3์ ํด๋ฆญํ์ ๋, Label3์ด
ํ๋์ฉ ์ฆ๊ฐํ ๊ฒ๋๋ค.
์ด๋ฒ์๋ ์์์ ์ธ๊ธํ๋ tag๋ฅผ ์ณ๋ณด๊ฒ ์ต๋๋ค.
print(sender.tag)
๋ฒํผ1, 2, 3 ์ ์์๋๋ก ๋๋ฌ๋ดค๋๋
์์ ์คํ ๋ฆฌ๋ณด๋์์ ์ค์ ํด๋๋ tag๋ฒํธ๊ฐ ์ฐํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด tag๋ฅผ ํ์ฉํ๋ฉด, ๊ฐ์ ๋ฒํผ์ ํด๋ฆญํ์ ๋ ์ซ์๊ฐ ํ๋์ฉ ์ฆ๊ฐํ๋ ์ฝ๋๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค.
if sender.tag == 0 {
count[0] = count[0] + 1
} else if sender.tag == 1 {
count[1] = count[1] + 1
} else {
count[2] = count[2] + 1
}
์ด๋ ๊ฒ tag๋ ํ์ฉํ ์ ์์๊ฒ๋๋ค!!
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ๋ ๊ธธ๋ค๋ฉด??
if sender.tag == 0 {
count[sender.tag] = count[sender.tag] + 1
} else if sender.tag == 1 {
count[sender.tag] = count[sender.tag] + 1
} else {
count[2] = count[2] + 1
}
์ด๋ฐ์์ผ๋ก sender.tag๋ก ์ฑ์ฐ๋ค๋ณด๋ฉด...
count[sender.tag] = count[sender.tag] + 1
์ด๋ ๊ฒ๊น์ง๋ ์ค์ผ ์ ์์ต๋๋ค!!
๋ ์ค์ธ๋ค๋ฉด..
count[sender.tag] += 1
์์ if๋ฌธ์ ํ์ฉํ๋ ๊ฒ๊ณผ ๋น๊ตํ๋ฉด, ์๋นํ ์ฝ๋๊ฐ ์ค์ด๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์์ธ๋ ์ฝ๋๋ ์ค์ผ ์ ์์ต๋๋ค.
๋ฐ๋ก Outlet Collecion์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์
๋๋ค!
Label์ ์ฐ๊ฒฐํ ๋, ์ปค๋จ์
๋ถ๋ถ์์ ๋ด๋ ค๋ณด๋ฉด 'Outlet Collection'์ด ์์ต๋๋ค.
์ด๊ฑธ๋ก ์ฐ๊ฒฐํ ๋ค์!
์ฝ๋์์ ์ข์ธก +๋ฅผ dragํด์ ๋๋จธ์ง label๊ณผ๋ ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
label1.text = "\(count[0])๋ฒ ํด๋ฆญ"
label2.text = "\(count[1])๋ฒ ํด๋ฆญ"
label3.text = "\(count[2])๋ฒ ํด๋ฆญ"
๊ทธ๋ฌ๋ฉด! ์๋๋ ์์ ๊ฐ์ด ์ ์ด์ฃผ์ด์ผํ๋ ๋ถ๋ถ์
labelList[sender.tag].text = "\(count[sender.tag])๋ฒ"
์ด๋ ๊ฒ sender.tag๋ฅผ ํ์ฉํด์ ์ฝ๋๋ฅผ ์ค์ฌ๋ณผ ์ ์์ต๋๋ค.โบ๏ธ
'Swift > Xcode' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] View Drawing Cycle (0) | 2024.05.28 |
---|---|
[Swift] Delegate ํจํด (0) | 2024.05.26 |
[Swift] UserDefaults (0) | 2024.05.25 |
[Swift] ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํด์ ์ฝ๋ ๊ฐ์ ํ๊ธฐ (0) | 2024.05.20 |
[Swift] Storyboard ์ฌ์ฉ ์ Outlet ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ (0) | 2024.05.16 |