2016-05-17 4 views
0

Мне нужно показать изображение в фиксированном размере, например 100 * 100 px, но размер реального изображения слишком большой (например, 400 * 450), проблема в том, что я установил большое изображение в 100 * 100 px imageview, затем прокрутка производит дрожание ячеекСтолбчатая камера сотрясается при слишком большом размере изображения

+0

его называют рывком. и, пожалуйста, покажите свой код метода cellForRow – Shubhank

ответ

1

Я использовал эту единственную строку кода для создания нового масштабируемого UIImage. Задайте параметры масштаба и ориентации для достижения желаемого. Первая строка кода просто захватывает изображение.

// grab the original image 
UIImage *originalImage = [UIImage imageNamed:@"myImage.png"]; 
// scaling set to 2.0 makes the image 1/2 the size. 
UIImage *scaledImage = 
      [UIImage imageWithCGImage:[originalImage CGImage] 
          scale:(originalImage.scale * 2.0) 
          orientation:(originalImage.imageOrientation)]; 

Самый простой способ установить рамку вашего UIImageView и установить contentMode одному из вариантов изменения размера.

Или вы можете использовать этот метод полезности, если вы на самом деле нужно, чтобы изменить размер изображения:

+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { 
    //UIGraphicsBeginImageContext(newSize); 
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution). 
    // Pass 1.0 to force exact pixel size. 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return newImage; 
} 
+0

Спасибо ... Я использовал ваше первое решение, и его работа почти прекрасна на всех устройствах (некоторые старые устройства все еще имеют проблемы с рывком). –

+0

Но у меня есть путаница, ваше решение одинаково или если я использую ваш второй ответ. Это даст лучшее решение. Plz предложите мне спасибо –

+0

первое решение масштабирует изображение, но если вам нужно изменить размер изображения, используя второй вариант – oremag14jf

 Смежные вопросы

  • Нет связанных вопросов^_^