2013-07-27 2 views
4

내 사용자 정의 tableViewCell에서 전체 셀을 채우는 imageView (tableViewCell의 기본 imageView 아님)가 있습니다. contentMode가 UIViewContentModeAspectFill 인 IB (및 코드)로 설정되며 경계로 클립됩니다. imageView의 이미지를 [UIImage imageNamed:...]으로로드 된 이미지로 변경할 때마다 이미지 뷰의 크기가 조정되어 원하는대로 기대됩니다. 그러나 이미지 세트에 [UIImage imageWithData:...]이로드되면 이미지는 설정되지만 크기는 조정되지 않습니다.UIImageView가 imageWithData로 설정하면 contentMode가 무시됩니다.

자체가 백그라운드 스레드에서 실행되는 데이터와 이미지를로드하고 다음과 같습니다 코드 : 나는 layoutSubviews에, 주 스레드에서 이미지를 설정 시도

- (void)getImage:(NSString *)URL { 
    NSError *error = nil; 
    UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:URL] options:NSDataReadingMapped error:&error]]; 
    if (!error){ 
     [self.thumbView setImage:image]; 
     [self.thumbView setContentMode:UIViewContentModeScaleAspectFill]; 
    } 
} 

하지만 항상 생산 동일한 결과 - 이미지보기를 채우기 위해 크기가 조정되지 않습니다. 이미지 (JPG)를 앱 번들에 추가하고 프로그래밍 방식으로 [UIImage imageNamed:...]으로 설정했지만 작동하는 앱은 URL에서 데이터를 가져와야합니다.

또한 UIImageView + AFNetworking-class를 사용하여 내 스레드를 만드는 대신 비동기 이미지를 설정하려고 시도했지만 작동하지 않습니다.

왜 이미지가 데이터에서로드 될 때 UIImageView의 contentMode를 존중하지 않습니까? 어떤 도움을 주셔서 감사합니다. JPEG도 PNG도 작동하지 않습니다.

+0

@OliverAtkinson 그게 뭐니? 이 스 니펫은 완벽하게 작동하지만 이미지가 예상대로 크기가 조정되지 않습니다. – Emil

+0

그것은 이미지 캐싱을 처리하므로 이미지 로딩과 관련하여 사용자 환경이 느려지는 것에 대해 걱정할 필요가 없습니다. 또한 UIImageView에 이미 설정된 모든 contentMode 설정을 따르게됩니다. 아마도 AFNetworking이 최고 일 것입니다. –

+0

나는 그것을 시험해 볼 것이다, 그때! 감사합니다 :) – Emil

답변

1

다른 사람이 같은 문제에 걸려 넘어지면 여기에 내가 수정 한 내용이 있습니다.

IB에서 새 이미지 뷰를 만들고 이전 이미지를 제거한 후 만 contentMode-value 및 clipsToBounds-value를 변경했습니다. tableViewCell.m init-code에서 자리 표시 자 이미지를 설정하고 voila - 모든 것이 매력처럼 작동합니다.

나는 그 원인을 모르지만 클리어 그래픽 콘텐츠 체크 표시가 잘못 설정되었을 수 있습니다 (oops).

관련 문제