Autolayout
레이아웃 [ Xib
, StoryBoard
, Masonry
, SnapKit
, SDAutoLayout
...]을 사용하여 UITableViewCell
및 UITableViewHeaderFooterView
높이를 편리하고 고성능으로 자동 계산하는 도구로, 가로 및 세로 화면을 지원하고 내부적으로 높이 캐시를 자동으로 관리하며 스위프트와 호환됩니다. pod 'UITableViewDynamicLayoutCacheHeight'
pod install
#import <UITableViewDynamicLayoutCacheHeight/UITableViewDynamicLayoutCacheHeight.h>
pod 'UITableViewDynamicLayoutCacheHeight/Category'
Carthage는 종속성을 구축하고 바이너리 프레임워크를 제공하는 분산형 종속성 관리자입니다. UITableViewDynamicLayoutCacheHeight를 통합하려면 Cartfile에 다음을 추가하세요.
github "liangdahong/UITableViewDynamicLayoutCacheHeight" ~> 5.2 . 0
clone https://github.com/liangdahong/UITableViewDynamicLayoutCacheHeight.git
]UITableViewDynamicLayoutCacheHeight
폴더의 전체 내용을 프로젝트에 끌어다 놓습니다. Cell
Xib
사용하여 구축됩니다. " Autolayout을 사용하는 한 순수 코드 레이아웃도 지원합니다."- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
의 코드와 일치합니다. UITableView
自动算高
하고自动缓存高度
. 효과는 다음과 같습니다. 스위프트 Xib 데모
Swift 순수 코드 레이아웃 데모
자세한 사용법은 UITableView+BMDynamicLayout.h 파일의 API를 참고하시기 바랍니다.
미리 Cell을 생성한 다음 내용을 채우고 레이아웃을 강제한 다음 Cell에서 MaxY가 가장 큰 View를 가져온 다음 이 View의 MaxY를 Cell에서 요구保证Cell 中的View 的MaxY 最大的值即为Cell 需要的高度
높이로 가져옵니다.保证Cell 中的View 的MaxY 最大的值即为Cell 需要的高度
], 캐시 저장 및 삭제 작업은 내부적으로 자동으로 관리됩니다.
캐싱 없음, 반복 계산, 인터페이스 점프 등 시스템의 자동 높은 계산의 단점을 모두가 잘 알고 있어야 하며 복잡한 레이아웃의 셀에서 스크롤 및 계산하기 때문에 몇 가지 문제가 있습니다. iOS8+만 지원합니다. 레이아웃은 전체 셀을 채워야 합니다. 레이아웃에서 일부 시나리오에서는 우선 순위를 설정해야 하며 그렇지 않으면 제약 조건 충돌이 보고됩니다.
UITableView-FDTemplateLayoutCell 처음에는 이 프레임워크를 사용했습니다. 동시에 API 디자인도 FDTemplateLayoutCell을 기반으로 했습니다. 덕분에 몇 가지 버그가 해결되지 않았습니다. 전체 셀을 채웁니다. 일부 장면은 레이아웃 중에 우선 순위를 설정해야 합니다. 그렇지 않으면 제약 조건 충돌이 보고되므로 UITableViewDynamicLayoutCacheHeight로 마이그레이션되었습니다.
UITableViewDynamicLayoutCacheHeight의 결함은 다음과 같습니다.
이 프레임워크를 기반으로 간단한 WeChat Moments 기능이 구현되었습니다. WeChat Moments 코드는 몇 년 전에 아무렇지도 않게 작성되었습니다. 아직 조정할 준비가 되지 않았다면 살펴보시기 바랍니다.
UITableViewDynamicLayoutCacheHeight는 MIT 라이선스에 따라 릴리스됩니다. 자세한 내용은 LICENSE를 참조하세요.