У меня возникла проблема, которая не может решить 2 дня. На изображении сервера и перед тем, как вставить их в поле, я разрежу их на клиенте, чтобы он соответствовал экрану. Все хорошо, но изображения меняются беспорядочно. Теперь высота рассчитывается независимо - пропорционально ширине. Нормальное изображение:Изменение размера изображения внутри tableviewcell
Плохое изображение
Я не могу просить явно UIImageView, потому что я динамически полагаюсь все ячейки различных устройств.
Моя функция изменения размера:
-(UIImage *)resizeImage :(UIImage *)theImage :(CGSize)theNewSize {
UIGraphicsBeginImageContextWithOptions(theNewSize, NO, 1.0);
CGFloat height = theImage.size.height;
CGFloat newHeight = 0;
newHeight = (theNewSize.width * height)/theImage.size.width;
newHeight = floorf(newHeight);
NSLog(@"new height image %f", newHeight);
[theImage drawInRect:CGRectMake(0, 0, theNewSize.width, newHeight)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
внутри layoutSubviews:
if(device == thisDeviceClass_iPhone5) {
[self.imageView setFrame:CGRectMake(0,0, 320, 255)]; //180
offset = 0;
padding = 5;
} else if(device == thisDeviceClass_iPhone6){
[self.imageView setFrame:CGRectMake(0,0, 375, 255)]; //211
offset = 25;
} else if(device == thisDeviceClass_iPhone6plus) {
[self.imageView setFrame:CGRectMake(0,0, 414, 255)]; //233
offset = 40;
}
Да, я знаю, что это плохой код, это временное решение. Просто, если я не укажу точные размеры изображения, он перемещается независимо и передает размеры экрана в пользовательском классе ячейки, я не знаю, как это сделать. Нет переменной self.view. ... – user2759544
Я установил этот contentMode, но не помог изображению исказить и понять, почему я не могу напрягаться. – user2759544
Вы установили образ «Clip subviews» в ImageView для YES? – null