블로그
RSS이예인이 만들고 운영하며 배운 것을 적습니다.
BombLab Phase5 해설
BombLab phase_5를 분석해 길이 6 문자열의 하위 4비트 합이 58이 되는 답을 찾는다.
BombLab Phase4 해설
BombLab phase_4와 func4 어셈블리를 분석해 답 7 7을 찾는다
BombLab Phase3 해설
phase_3의 점프 테이블을 분석해 두 숫자 답을 찾는 과정
BombLab Phase2 해설
read_six_numbers·phase_2 어셈블리를 분석해 여섯 숫자 답을 찾는 과정
BombLab Phase1 해설
string_length·strings_not_equal·phase_1 어셈블리를 분석해 답을 찾는 과정
UIImageView를 image 크기에 맞추기
UIImageView 높이를 이미지 비율로 계산해 남는 여백을 없애는 방법
하위뷰에서 상위뷰로 데이터 전달 (PreferenceKey, GeometryReader)
GeometryReader로 하위 뷰 크기를 구하고 PreferenceKey로 상위 뷰에 전달한다.
UICollectionViewHeader with Dynamic Height
systemLayoutSizeFitting으로 서브뷰 제약에서 높이를 계산해 컬렉션뷰 헤더 높이를 동적으로 정한다.
withAnimation 버그 해결
onAppear의 withAnimation이 엉뚱한 뷰까지 움직이는 문제를 animation modifier로 해결했다.
ForEach의 ID
ForEach의 id가 하는 일과, 값이 겹칠 때 Identifiable로 감싸는 방법.
keyPath의 함수기능
Swift 5.2부터 keyPath를 함수처럼 넘길 수 있어 map·filter를 짧게 쓸 수 있다.
UIImageView를 Image 크기에 맞추기
scaleAspectFit 이미지뷰에 남는 여백을 이미지 비율로 높이 제약을 걸어 없앤다.
비동기 함수 여러개 호출 후 completionHandler 호출
비동기 함수를 여러 개 호출하고 모두 끝난 뒤 한 번만 처리하려면 DispatchGroup의 enter·leave·notify를 쓴다.
cell의 이벤트 에러
셀에 넣은 뷰가 탭에 반응하지 않을 때, contentView 때문에 생기는 문제와 해결법.
addGestureRecognizer와 addTarget 차이
UIView에 쓰는 addGestureRecognizer와 UIControl에 쓰는 addTarget의 차이.









