내 사용자 정의 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도 작동하지 않습니다.
@OliverAtkinson 그게 뭐니? 이 스 니펫은 완벽하게 작동하지만 이미지가 예상대로 크기가 조정되지 않습니다. – Emil
그것은 이미지 캐싱을 처리하므로 이미지 로딩과 관련하여 사용자 환경이 느려지는 것에 대해 걱정할 필요가 없습니다. 또한 UIImageView에 이미 설정된 모든 contentMode 설정을 따르게됩니다. 아마도 AFNetworking이 최고 일 것입니다. –
나는 그것을 시험해 볼 것이다, 그때! 감사합니다 :) – Emil