-Preview-

Screen

-View made today-

Screen
addSubview 연습

-Code Review-

addSubview

UIKit으로 앱을 구현할 때, addSubview라는 코드를 이용하여 뷰를 화면 위에 쌓게된다.
뷰가 적으면 상관 없지만, 만약 무수히 많은 뷰를 넣어야 할 경우 어떻게 할까?

addSubview(view1)
addSubview(view2)
addSubview(view3)
addSubview(view4)
...

이렇게 작성하는건 너무 개발자답지 못하다고 생각한다.
그래서 오늘은 addSubview를 보다 편하고 많은 수의 뷰도 할당할 수 있는 방법에 대해 공부해보았다.

1) extension 활용하기

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)

2) .forEach 활용하기

extension을 활용하는 방법 외에도 .forEach를 사용하는 방법도 있다.
먼저 UIView 타입을 가지는 배열을 생성해준다.

let viewArray: [UIView] = [view1, view2, view3, view4]

그리고 이 배열에 .forEach를 사용하여 화면에 구현해준다.

viewArray.forEach {
	// 배열에 들어있는 모든 멤버를 순서대로 구현
	addSubview($0)
}

3) 구현 결과물

이렇게 두 코드를 사용하면 화면에 원하는 뷰를 몇개든 편하게 배치할 수 있다.


-Today's lesson review-

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

0개의 댓글