UItable ViewCell에서 동적 크기를 설정하는 원형 이미지뷰

815 단어
사용자 정의 UItable ViewCell에 이미지뷰가 원형으로 표시되어야 합니다. 너비는 autolayout 동적 설정이기 때문에 xib에서layer를 설정할 수 없습니다.cornerRadius.그래서 나는 awake From Nib에 레이어를 설정했다.cornerRadius와layer.masks ToBounds의 테스트에 의하면 아이폰6에 문제가 없지만 아이폰5에 잘못 표시됩니다.awake FromNib에서 이미지 뷰의 프레임을 인쇄했는데 width와height,xib의 원시 값을 발견했습니다. 이것은 분명히 문제가 있습니다.
분명히 UItable ViewCell의 autolayout이 완성된 후에 이미지뷰의 프레임이 필요합니다. 그러나 관련api가 실현되지 않은 것을 발견했고 마지막으로 다음 코드로 실현되었습니다.
- (void)layoutSubviews {
    [super layoutSubviews];
    
    [self layoutIfNeeded];
    _imageviewAvantar.layer.cornerRadius = _imageviewAvantar.width / 2;
    _imageviewAvantar.layer.masksToBounds = YES;
}

아마도 다른 방법은 UIImageView의subclass를 써서,layout Subviews에서layer를 수정하는 것입니다.cornerRadius
참조: How to combine Auto Layout constraints with contentMode property of UIView

좋은 웹페이지 즐겨찾기