2022. 1. 9. 00:15ㆍSwift, iOS Foundation
이번 글은 iOS 개발을 하면서 아주 유용하게 쓸 수 있는 꿀팁을 하나 가져왔다.
나도 코드 리뷰에서 알게 된 내용인데, 성격이 같은 넘버링으로 되어있는 Outlet 변수들을 묶어서 사용하는 방법이 있다고 한다.
그것이 바로 IBOutlet Collection이라는 것을 활용하는 방법인데,
바로 어떻게 사용하는지 확인하러 가보자 ^__^
iOS 개발을 하면서, 특별한 이유 없이, first.. second.. third... 이런 순서대로 나열되어 있는 것들을 만들어본 적이 있지 않은가..?
@IBOutlet weak var firstTmiLabel: UILabel!
@IBOutlet weak var secondTmiLabel: UILabel!
@IBOutlet weak var thirdTmiLabel: UILabel!
결국은 이 라벨들이 모두 같은 작업을 하게 될텐데,
이것들을 일일이 반복작업하면, 너무 비효율적인 작업이 될 거라는 생각이 들곤 했다.
하지만, 이제는 그럴 필요가 없다.
IBoutlet을 뷰컨트롤러에 연결해줄 때, 기존 Outlet이 설정되어 있는 것을 Outlet collection으로 바꿔서 선택해주자.
그리고, 이제 나머지 라벨들도 전부 앞에서 만들었던 이 아웃렛 컬렉션 변수에 연결을 해주면,
아래와 같이 Oultet 변수 하나에 여러 라벨들이 묶여 있는 모습을 보이게 될 것이다.
그럼 이제 저 라벨들을 일괄적으로 사용을 하고 싶을 때, 아래와 같이 for 반복문을 사용해서 저 라벨 각각에 접근하면 된다.
그러면 이렇게 아래와 같이 일괄적으로 red 컬러 색상이 바뀐 것을 확인할 수 있을 것이다.
앞으로 각각 객체의 속성에 대해서 일괄적인 작업이 필요하다면, 이런 식으로 사용해도 되겠다 ^___^
// 텍스트 컬러를 red로 수정하는 예시
func setLabelColor() {
for lb in tmiLabelCollection {
lb.textColor = .red
}
}
'Swift, iOS Foundation' 카테고리의 다른 글
[Swift] 고차함수 개념 완전 정복하기: map, filter, reduce (0) | 2022.01.24 |
---|---|
[Swift] 구조체(Struct)와 클래스(Class) 완전 정복하기: 기본 개념부터 프로퍼티, 인스턴스, 상속까지 (0) | 2022.01.22 |
[Swift] @IBInspectable, @IBDesignable을 사용해보자 (0) | 2021.12.20 |
[Foundation] UserDefaults를 사용해서 데이터를 전달하는 방법 (0) | 2021.12.17 |
[Swift] 함수 앞에 private가 붙어 있던 이유, 접근 제어(Access Control) (0) | 2021.11.08 |