У меня есть UIButton
с фиксированной высотой 40 (высота ограничения 40), где я устанавливаю изображение с помощью кода, который представляет собой pdf (vectorgraphic) размером 64x64 .Результат должен быть:
Я добавил изображение, как показано ниже:
image = [UIImage imageNamed:@"icon-clear"];
[self setImage:image forState:UIControlStateNormal];
Результат, который я получаюis:
Добавлена черная рамка для imageView
для лучшей визуализации.imageView
имеет окончательный размер 64x40 .
Я думаю, что происходит то, что imageView
получает изображение и его размер будет изменен до 64x64 и уменьшен с помощью ограничений кнопок до 40, но резервирует ширину 64.
Я пробовал несколько вещей:
self.imageView.frame = CGRect(0,0,32,32);
self.imageView.bounds = CGRect(0,0,32,32);
или
let aspectRatioConstraint = [NSLayoutConstraint constraintWithItem:self.imageView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.imageView attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0];
[self.imageView addConstraint:aspectRatioConstraint];
или
[self.imageView.widthAnchor constraintEqualToConstant:32];
Единственное, что внесло визуальное изменение, было:
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
, но в результате получилось плохое качество изображения, и я предполагаю проблемы с производительностью.
Я просто хочу использоватьвекторный файл pdf для ситуаций с несколькими размерами.Как можно дать кнопкам imageView фиксированный размер с UIViewContentModeScaleAspectFit
для изображения.
thx много!