2016-11-25 1 views
0

길이가 선택적 인 ImageView로 UITableViewCell을 표시하려고합니다.자동 레이아웃을 사용할 때 UIImageView 길이가 중복됩니다.

my autolayout

하지만 내 결과 (상단 및 하단에서 중복)과 같이 : enter image description here enter image description here 어떻게이 문제를 해결하기 위해 그리고 여기 내 레이아웃은 무엇입니까?

+0

먼저 LMAO @ 샘플링 화상. 둘째, "Title Title"텍스트 뷰 위쪽과 –

+0

@AO의 버튼 모두에 대한 상수 == 0의 수직 공간 제약 조건이 있는지 확인하십시오. 나는 그것을 설정했다. – John

+0

여분의 공간이 정말로 UIImageView의 추가 높이인지 확인하기 위해 뷰 디버거에 들어가 보았습니까? 높이를 특정 상수로 지정하면 여전히 간격이 표시됩니까? –

답변

0

문제는 여기 ContentHuggingPriorityContentCompressionResistancePriority입니다.

코드에서 이미지의 크기를 감지 할 수있는 아무것도이

[NSLayoutConstraint autoSetPriority:ALLayoutPriorityRequired forConstraints:^{ 
    [yourImageView autoSetContentCompressionResistancePriorityForAxis:ALAxisHorizontal]; 
    [yourImageView autoSetContentHuggingPriorityForAxis:ALAxisHorizontal]; 
}]; 
+0

올바르지 않을 수 있습니다. 나는 노력했지만 유용하지는 않습니다. – John

0

를 사용하려고합니다.

  1. 이미지보기에 높이 제한을 설정하십시오. 상수는 나중에 프로그래밍 방식으로 변경하기 때문에 중요하지 않습니다.

  2. 은 높이 제약 조건 함께 IBOutlet 확인하고 이미지의 크기를 가져옵니다
    @property (strong, nonatomic) IBOutlet NSLayoutConstraint *imageViewHeight 
    
  3. IB에

    에 연결합니다. Reference

    UIImage * img = [UIImage imageNamed:@"someImage.png"]; 
    CGSize imgSize = img.size; 
    
  4. 변경 NSLayoutConstraint 정수입니다.

    self.imageViewHeight.constant = imgSize.height 
    
관련 문제