본문 바로가기

카테고리 없음

[TIL] 24.03.27 WED

#Morning Algorithm

프로그래머스 바탕화면 정리

- 해결

- 1시간

- String Array를 String.element 하나씩 탐색 

for (i, str) in array.enumerated() {
	for (j, element) in str.enumerated() {
    	// element == array[i][j]
    }
}

 

- 최대 최소를 저장할 땐 min/max(저장값, 비교값)를 사용해보자

 

 

#AutoLayout 세션

- Hugging(default: 251)

    - 어느 한쪽이 커져야 할까?

    - 동적으로 크기나 위치를 설정할 때, 의존하는 것과 의존당하는 것중 하나의 Intrinsic Size 동적으로 설정하게 됨

        -> 이 때, Hugging Priority가 높은 쪽의 Intrinsic Size를 유지하고 낮은 쪽을 늘림

 - Compression(default: 750)

    - 어느 한쪽이 작아져야 할까?

    - 공간이 모자라 한쪽의 Intrinsic Size를 줄여야 함

        -> Compression Priority가 높은 쪽의 Intrinsic Size를 유지하고 낮은 쪽을 줄임

 

 

 

# 강의

한번에 TableView 여러 셀의 삽입, 삭제, 이동의 애니메이션들을 실행할 때 애니메이션들을 한번에 실행(뷰에 한번 그리기)

- performBatchUpdates() : insert, move, delete를 하나의 단위로 묶어서 한번에 drawing 업데이트(delete 우선 실행됨)

 

Expandable Cell

- cell 내부에서 prepare(), prepareForReuse() 구현을 통해 재사용 될 때 이벤트를 반영하도록 하고 

셀 터치시 reloadRows(at: , with:) 메서드 실행 (tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)에서)

 

 #객사오

- 설계를 할땐 상태가 아니라 행동에 포커스(행동이 상태를 결정한다) - 책임 주도 설계

- 객체 지향은 현실 세계의 추상화나 모방 수준을 넘은 은유다(실재에서 불가능한 소프트웨어 행동을 하는 객체를 만들수 있다)

    -> 현실의 모방이아닌 새로운 소프트웨어 세계를 설계해라