2012-05-05 6 views
3

На этот вопрос, возможно, был дан ответ, но я не могу найти решение проблемы после нескольких часов работы в Интернете.Показать часть UIImage в UIImageVIew

У меня есть UIImageView (320 * 320) в обычая UITableCell с UIImage (320 * 320) внутри. Когда я нажимаю на кнопку, UIImageView изменяет размер до 320 * 80 (анимированный) и UIImage тоже.

Как я могу сделать, чтобы предотвратить изменение размера UIImage? Я хотел бы это UIImage остаться, но так же и показать только часть этого изображения (320 * 80 кадр с 0/0 происхождения)

Edit: Обрезка

Я подумал о кадрирование изображения в правильного размер, а затем установить образ UIImageView, чтобы на полноразмерном изображение, но это выглядит некрасиво, потому что, когда пользователь нажимает на UIImageView, это один еще 320 * 320, но UIImage был установлен обрезанными один (320 * 80), поэтому он перегоняется ...

Thanks

ответ

3

я делаю что-то подобное в одном из моих приложений, когда я создаю UIImageView объект, я установил свойство contentMode к UIViewContentModeScaleAspectFill и clipsToBounds свойству YES. Надеюсь это поможет.

+0

О, вы спасатель жизни, я начал делать это с помощью scrollview, но у меня было еще больше проблем. Большое спасибо –

+0

добро пожаловать;) – pherediac

3

Вы можете изменить размер изображения, а затем заменить изображение UIImageView на изменение размера.

CGImageRef imageToBeResized = yourImage.CGImage; 
CGImageRef partOfImageAsCG = CGImageCreateWithImageInRect(imageToBeResized, CGRectMake(0, 0, 320, 80)); 
CGRelease(imageToBeResized); 
UIImage *resizedImage = [UIImage imageWithCGImage:imageToBeResized]; 
+0

Я пробовал ваше решение, и это не значит, что я хочу (см. Отредактированный вопрос) –

1

Возможно, вам стоит подумать об использовании UIScrollView с вашим UIImageView внутри. Таким образом, вы можете со своими свойствами архивировать желаемое поведение.

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