| Screen |
|---|
![]() |
| Screen |
|---|
![]() |
| addSubview 연습 |
UIKit으로 앱을 구현할 때,addSubview라는 코드를 이용하여 뷰를 화면 위에 쌓게된다.
뷰가 적으면 상관 없지만, 만약 무수히 많은 뷰를 넣어야 할 경우 어떻게 할까?addSubview(view1) addSubview(view2) addSubview(view3) addSubview(view4) ...이렇게 작성하는건 너무 개발자답지 못하다고 생각한다.
그래서 오늘은addSubview를 보다 편하고 많은 수의 뷰도 할당할 수 있는 방법에 대해 공부해보았다.
addSubview 메서드는 UIView에 포함된 메서드이다.
// UIView 메서드
func addSubview(_ view: UIView)
위에서 매개변수에 넣을 수 있는 UIView 타입의 값은 1개이다.
우리는 많은 양의 뷰를 넣고싶기 때문에 extension으로 새로운 메서드를 만들어준다.
extension UIView {
// UIView... 으로 표현하여 1개 이상의 값을 넣을 수 있도록 설정
func addSubviews(_ views: UIView...) {
// for-in 반복문으로 매개변수의 값을 전달
for view in views {
// addSubview 메서드로 view에 전달된 views의 값을 순서대로 구현
addSubview(view)
}
}
}
이렇게 하면 많은 양의 뷰를 한번에 처리할 수 있게된다.
addSubviews(view1, view2, view3, view4)
extension을 활용하는 방법 외에도 .forEach를 사용하는 방법도 있다.
먼저 UIView 타입을 가지는 배열을 생성해준다.
let viewArray: [UIView] = [view1, view2, view3, view4]
그리고 이 배열에 .forEach를 사용하여 화면에 구현해준다.
viewArray.forEach {
// 배열에 들어있는 모든 멤버를 순서대로 구현
addSubview($0)
}
이렇게 두 코드를 사용하면 화면에 원하는 뷰를 몇개든 편하게 배치할 수 있다.

오늘은 프로젝트를 완전히 끝내고 발표회를 가졌다.
일주일이라는 길면 길고 짧으면 짧은 시간동안 열심히 진행했던 프로젝트가 끝난다니 시원섭섭한 기분이었다.
다음주부터는 또 새로운 팀으로 학습을 이어가겠지만, 그 때도 지금처럼 좋은 팀을 만날 수 있으면 좋겠다.