我有一個ImageView
一個TableViewCell
,和我設置的圖像,像這樣:獲得ImageView的原始圖象尺寸
[self.contentImageView setImageWithURL:thumbnail_url];
的contentMode
設置爲UIViewContentModeScaleAspectFill
,和子視圖被裁剪。 這對於縱向或橫向的圖像效果最佳,但UIViewContentModeScaleToFill
實際上對橫向圖像效果更佳,而這種效果更爲豐富。
因此,我想通過比較寬度和高度來檢測圖像的方向,並相應地更改contentMode
。
起初,我試圖檢查/登錄ImageView.image
屬性,直接從url設置後,但它顯示爲零。 不確定爲什麼......?
接下來,我決定把該NSURL
到NSData
對象,然後創建從數據UIImage
,並與伊娃設置ImageView
的形象財產,像這樣:
NSData *data = [NSData dataWithContentsOfURL:thumbnail_url];
UIImage *image = [UIImage imageWithData:data];
[self.contentImageView setImage:image];
// Get image.size etc.
這 - 特別是NSData
的呼叫 - 大大減緩了TableViewCell's
的負載,所以我想避免它。
所以,我想知道是否有無論如何要走向ImageView
的未裁剪源圖像屬性中的比例發生了contentMode
過嗎?
你使用AFNetworking嗎?我問,因爲你調用函數「setImageWithURL」。 (無效)setImageWithURLRequest:(NSURLRequest *)urlRequest placeholderImage:(UIImage *)placeholderImage success:(void(^)(NSURLRequest * request,NSHTTPURLResponse * response,UIImage * image) )成功 失敗:(void(^)(NSURLRequest * request,NSHTTPURLResponse * response,NSError * error))failure;「並在「成功」塊中打印image.size? – jregnauld
@jregnauld是的,這種方法是AFNetworking的一部分 - 對不起,剛注意到這個(不是我原來的代碼)...會試試這個方法... –