iOS 레이아웃 렌 더 링 UIView 방법의 호출 시기 상세 설명

머리말
앱 페이지 최 적 화 는 편집장 에 게 어 려 운 문제 이다.최근 에 계속 공부 하고 정리 한 결과 앱 페이지 최 적 화 는 view 의 그리 기와 렌 더 링 메커니즘 과 떨 어 질 수 없다 는 것 을 알 게 되 었 다.본 고 는 iOS 레이아웃 렌 더 링 의 UIView 방법 호출 시기 에 관 한 내용 을 상세 하 게 소개 하 겠 습 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 해 보 겠 습 니 다.
단속

- (void)updateConstraints NS_AVAILABLE_IOS(6_0) NS_REQUIRES_SUPER;
다음 과 같이 트리거 할 때:
1.initWithFrame 에서 호출 되 지만 다음 과 같은 방법 을 다시 쓰 고 YES 로 돌아 가 야 합 니 다.

+ (BOOL)requiresConstraintBasedLayout NS_AVAILABLE_IOS(6_0);
2.업데이트 가 필요 하 다 고 표시 되 어 있 으 며,다음 drawing cycle 은 자동 으로 호출 됩 니 다.제약 조건 이 바 뀌 면 다음 render loop 에 서 는 layoutSubviews(레이아웃)를 자동 으로 호출 합 니 다.

- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);
3.업데이트 할 태그 가 있 으 면 바로 호출 합 니 다.제약 조건 이 바 뀌 면 다음 render loop 에 서 는 layoutSubviews(레이아웃)를 자동 으로 호출 합 니 다.

- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0);
포석

- (void)layoutSubviews;
1.다음 과 같이 언제 촉발 합 니까?
initWithframe 에서 호출 되 지만 rect 의 값 은 CGRectZero 일 수 없습니다.

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
2.레이아웃 이 필요 하 다 고 표시 하고 다음 drawing cycle 은 자동 으로 호출 됩 니 다.

- (void)setNeedsLayout;
3.레이아웃 이 필요 한 태그 가 있 으 면 바로 호출 합 니 다.

- (void)layoutIfNeeded;
4.자신의 frame 이 바 뀌 었 을 때 제약 도 frame 의 변 화 를 초래 할 수 있다.

@property(nonatomic) CGRect frame;
5.하위 보기 나 하위 보기 frame 을 추가 할 때 제약 도 frame 변 화 를 초래 할 수 있 습 니 다.
6.보기 가 UIScrollView 에 추가 되 고 UIScrollView 를 스크롤 합 니 다.
표시

- (void)drawRect:(CGRect)rect;
다음 과 같이 트리거 할 때:
1.initWithFrame 에서 호출 되 지만 rect 의 값 은 CGRectZero 일 수 없습니다.

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
2.표시 가 필요 하 다 고 표시 하고 다음 drawing cycle 은 자동 으로 호출 됩 니 다.

- (void)setNeedsDisplay;
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기