728x90
주어진 과제에 접근을 하고
수많은 시도 끝에
과제가 풀린 후
피드백을 받을 때
더 클린하고
빠르게 처리되는 코드를 보면
왜 나는 그렇게 짜지 못 했나
생각 말고
새로운 코드를 알게 되어서
행복하다 생각중이다
오늘도 달려보자
위의 영상처럼 여러개의 버튼이 동일한 작동을 할 때 사용하면 좋은 기능이다
Tag 지정
버튼을 누르고 Storyboard 상의 Inspector 영역에서
각 버튼 마다 태그를 지정해주자
0부터 8까지 지정해주었다
코드 입력해주기
// 감정 버튼을 IBOutlet으로 묶어줌
@IBOutlet var emotionButton : [UIButton]!
// emotionCases(감정 상태 글자)와 emotionArrary(버튼을 누를 때 올라가야 할 숫자 (초기값 0)를 설정
var emotionCases: [EmotionEnum] = [.행복해, .사랑해, .좋아해, .당황해, .속상해, .우울해, .심심해, .따분해, .포기해]
var emotionArrary = [0, 0, 0, 0, 0, 0, 0, 0, 0]
//viewDidLoad에 emotionButton tag 반복
override func viewDidLoad() {
super.viewDidLoad()
for i in 0...8 {
emotionButton[i].tag = i
}
// 감정 버튼을 눌렀을 때 액션을 주고 감정 버튼을 누를 때 마다 숫자가 증가하는 코드를 짰다
@IBAction func emotionButtonTapped(_ sender: UIButton) {
emotionArrary[sender.tag] += 1
let emotionCase = emotionCases[sender.tag]
let emotionString = emotionCase.rawValue
emotionLabelCollection[sender.tag].text = emotionString + "\(emotionArrary[sender.tag])"
}
처음 짰던 코드는 감정 + 숫자를 String + Int(String)로 생각해서 '감정' + '문자인 숫자'로 나누어서 구현 했다
시간도 많이 걸리고 index를 주는 부분에서 상당히 어려움을 겪었었다
tag를 배우고 tag를 활용하자 수많은 코드가 날아가고 쉽게 풀렸다
꼭 코드를 짜기 전 구조화 하고 계획을 하는 습관을 기르자!
'Tech > iOS' 카테고리의 다른 글
[iOS] Day 12 - Storyboard에서 화면 전환 설정 (0) | 2022.07.15 |
---|---|
[iOS] Day 11 - Storyboard 여러개 지정, Open Source Library in Xcode (0) | 2022.07.14 |
[iOS] Day 9 - Priority (0) | 2022.07.12 |
[iOS] Day - 9 Alert (0) | 2022.07.12 |
[iOS] Day 8 - StackView, 비율 지정 (0) | 2022.07.11 |