광어네 맛집

[ScrollView_TableView_AutoLayout] 셀 높이 관련 이슈 본문

Swift/navigator👨🏻‍✈️

[ScrollView_TableView_AutoLayout] 셀 높이 관련 이슈

Lautner Jacob 2022. 2. 10. 15:27
728x90
반응형

이번 카테고리는 없는 길을 항해하는 느낌으로 포스팅을 할 예정!

제가 4차원으로 생각하는 경향이 있는 듯하여 나만의 카테고리를 만들면 어떨까 생각함

(물론.. 있는 내용일 수도 있고, 내가 못해서 그럴 수도 있지만 새롭게 무언가 발견할 수 있지 않을까 하여 ㅎㅎ..)

 

이슈: ScollView 안에 TableView를 넣고 TableView Cell을 automaticDimension으로 셀 높이 맞춰주고자 했음
+ 슬라이더 라이브러리를 Cell안에 넣고 싶은데 자꾸 크게 빠져나옴 (MultiSlider)

1. Cell에 이렇게 label만 잡아둔 상황이고

override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
        addSubview(title)
        title.snp.makeConstraints {
            $0.centerY.equalTo(self)
            $0.leading.equalTo(self).inset(16)
            $0.top.equalTo(self).inset(13)
        }
    }

2.  이렇게 Cell안에 slider를 추가하고자 함

self.contentView.addSubview(slider)
slider.snp.makeConstraints { make in
	make.center.equalTo(self.contentView)
	make.leading.trailing.equalTo(self.contentView).inset(16)
}

3. silder가 지 마음대로 밖으로 빠져나온거임 ㅡㅡ 

 

혼자 해결하다가 안되서 주변 개발자분들께 도움을 청하니

TableView랑 ScrollView를 같이 쓰면 오류가 난다고 함
(왜냐면 TableView속성에 이미 ScrollView가 내장되어 있다고..)

 

근데 문제가 생겼을 때 되고 정석?인 방법으로 가는 것도 중요하지만
이런 저런 시도 다 해보는 것도 중요하다고 생각해서 저 분들 말을 뒤로 고집을 부림 ㅎㅎ..

 

해결 : 돌고 돌아서 했을 수도 있지만 구현함!

안됐던 이유는

1. 내가 layout을 잘못 잡아서...
automaticDimension을 잡을 때 가장 먼저 잡은 title을 한번에 잡아서 
다시 설정해줘야 했던 거임

그래서 아래처럼 다시 잡아주고

self.title.snp.remakeConstraints {
	$0.leading.equalTo(self).inset(16)
	$0.top.equalTo(self).inset(13)
}

 

2. 그리고 내가 느끼기엔 라이브러리가 이상함
슬라이더를 내리니까 라이브러리에 쌓인 뷰가 다 깨진다고 해야하나 
슬라이더 살짝 위에를 잡고 움직여야 슬라이더가 움직이고 ....

그래서 방법은 뷰를 하나 더 잡고 그 뷰에 라이브러리를 넣었음!
사실 결과가 이 사진임

사진을 보면 슬라이더 뒤에 뷰가 하나 생겨져 있는 걸 발견함

혹시나 해서 tableView DidSelect 설정해서 Cell클릭해보니 

 

오잉..??
클릭은 됨ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

내가  새롭게 View를 만들어준 뒤에 라이브러리 silder를 넣어줘서 그랬던 거임

이걸 더 깔끔하게 하고 싶으면 만들어놓은 View에 잘라주면 깔끔하게 나옴

let testView = UIView().then {
	$0.layer.masksToBounds = true
}

 

이게 최종 뷰!

 

 

728x90
반응형