Программно предотвратить автоматическое изменение размера UIImageView - PullRequest
2 голосов
/ 17 октября 2011

Я бы хотел обрезать один конец UIImageView, динамически изменяя размер кадра.Конечно, если он автоматически изменяет размеры, он не будет выглядеть усеченным, но будет выглядеть сжатым.Первый эффект, который я хотел бы, последний нет

Пока что я настроил UIImageView в IB, а затем подключил его программно с помощью IBOutlet.Затем я поместил это в ViewDidLoad, но все еще получаю авторазмер:

[self.stringImageView setAutoresizingMask:UIViewAutoresizingNone];
self.stringImageView.frame = CGRectMake(9.0f, 508.0f, 500.0f, 26.0f);

Любые идеи как я могу обрезать свой UIImageView вместо того, чтобы иметь его изменение размера?

EDIT 1

Следует также отметить, что в IB я отменил выбор Clip Subviews и Autoresize Subviews.

Ответы [ 5 ]

11 голосов
/ 17 октября 2011

Использование: stringImageView.contentMode = UIViewContentModeCenter;, поэтому изображение, добавляемое вами в UIImageView, всегда сохраняет один и тот же размер и одну и ту же позицию в вашем представлении.

1 голос
/ 17 октября 2011

Вам необходимо сначала обрезать объект UIImage в соответствии с фреймом изображения, а затем установить его как изображение для просмотра изображения.См. Также Обрезка UIImage

0 голосов
/ 29 марта 2014

Еще один более эффективный способ, если вы хотите, чтобы только часть изображения была видимой, или, например, оживить его внешний вид,

- установить режим содержимого UIImageView на UIViewContentModeCenter (или любое другое выравнивание) и включить его в UIScrollView.

Вам нужно будет только поменять рамку вида прокрутки, и ваше изображение будет визуально обрезано без необходимости создавать обрезанное изображение (что будет очень высокой ценой, если оно предназначено для анимации).

0 голосов
/ 17 октября 2011

В Интерфейсном Разработчике установите Режим на вкладке «Вид» на «Вверх» или что бы то ни было.

0 голосов
/ 17 октября 2011
@implementation UIImage (Resize)

// Returns a copy of this image that is cropped to the given bounds.
// The bounds will be adjusted using CGRectIntegral.
// This method ignores the image's imageOrientation setting.
- (UIImage *)croppedImage:(CGRect)bounds {
    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds);
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return croppedImage;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...