본문 바로가기
🌱

separator inset 적용

by 방우 2022. 8. 8.

졸리면 아이스팩 추천, 정신 잃는 순간 아이스팩 밟으면 호들짝 깸


separator inset을 스토리보드상에서 설정하기 위해서는 어떻게할까?

 

결론적으로 아래 방법대로 헤더, 셀 separator inset, 셀 레이아웃 이렇게 구분해서 적용해주는 것 같다.

하나씩 적용하면 하나씩 바뀐다.

 

밑줄 친 코드와 시뮬레이터에 표시한 곳 대응해서 보면 된다.

 

 

파란색은 헤더이다. 헤더의 클래스네임은 UITableViewHeaderFooterContentView

 

 

cell에 대한 구분선 클래스네임은 UITableViewCellSeparatorView이다.

 

 

아하

 

테이블뷰에 적용하는 코드블럭, cell에 적용하는 코드블럭 이렇게 나뉘는 것까지 이해했다.

 

그럼 왜 cell에서 또 나뉘지?

 

layoutMargins은 contentsView에 적용되기 때문이다.

- 공식문서의 summary를 보면 The default spacing to use when laying out content in the view. 

그럼 cell의 separator inset를 보면?

- The inset values for the separator line drawn beneath the cell.

 

구분선의 기준이 다르다.

 

contents뷰 기준이기 때문에 하위 cell의 구분선에는 코드가 적용되지 않았고

cell간의 구분선 값을 지정해주는 것이기때문에 뷰간의 구분선에는 코드가 적용되지 않았다. 

 

참고로 layoutMargins는 cell파일에 이렇게 지정해줘도 적용된다. layoutMargins에 대해 위와 중복해서 작성한다면 당연히 위의 코드가 덮어쓸것이다. 주의하기~

    override func layoutSubviews() {
            super.layoutSubviews()
            self.layoutMargins = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 0)
    }
    
}

 

한가지 찜찜한건 스토리보드의 인스펙터 영역에서 separator inset를 Automatic로 바꾸니까 적용이 됐다는 부분이다. Custom이었을 때 되야 맞는게 아닐까? 근데 또 지금은 Custom이어도 된다.ㅎㅎ

 

추측이라서 틀린부분은 댓글 부탁드려요🐡🐡🥹

 


위의 코드는 새싹분이 찾아서 알려주셨다. 👍

 

확실이 코드로 작성하면 자유도가 높아지는데 내가 얼마가 잘 알고있는지가 중요..한..듯..하다...

'🌱' 카테고리의 다른 글

PHPickerViewController  (0) 2022.08.14
데이터 통신과 테이블 뷰 트러블슈팅  (0) 2022.08.09
URL textView에 연결  (0) 2022.07.30
SearchBar/URL 연결  (0) 2022.07.30
Notification 앱푸쉬  (0) 2022.07.30