2015-08-31 2 views
17

Я хотел бы достичь:Вставки в UIImageView?

  • Scale режим зрения изображения
  • Вставки в UIImageView заполнить так, чтобы изображение не соответствует края UIImageView

BottomLine: Я хочу для увеличения области касания UIImageView без растягивания изображения за определенный размер.

Можно ли через раскадровку? Если нет, кто-нибудь может сказать, как это сделать программно?

Я могу достичь аналогичной функциональности с помощью UIButton и установки вставки изображения через раскадровку, но не могу найти такую ​​вещь с UIImageView.

+0

Вы рассматриваете изменение размера изображения во время исполнения фактически не влияет на исходное изображение? это будет? –

+0

да это сделал. – Sarasranglt

+0

Это изменит масштаб и pixelate вашего изображения, если ваше изображение будет низким, вместо этого есть поворот, который вы можете попробовать, если вы готовы пересмотреть я могу отправить ответ –

ответ

20

Используя метод, приведенный here:

UIImage *image= [MyUtil imageWithImage:[UIImage imageNamed:@"MyImage"] scaledToSize:CGSizeMake(80, 80)]; 

UIImageView* imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; 
imgView.contentMode = UIViewContentModeCenter; 
[imgView setImage:image]; 

Теперь ваши вставки становятся 100-80 т.е. 20.

Это временное решение для обеспечения вставки в UIImageView. Лучше ответы приветствуются.

4

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

15

Похоже, вы хотите иметь приятное изображение, поэтому почему бы не использовать UIButton с изображениями и изображениямиEdgeInsets?

UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom]; 
[b setFrame:someFrame]; 
[b setImage:img forState:UIControlStateNormal]; 
b.imageEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20); 
[b addTarget:self action:@selector(imageClicked:) forControlEvents:UIControlEventTouchUpInside]; 
+0

Awesome Мне нравится идея использования кнопки для добавления функциональных возможностей вставки к изображению. +1 – Michael

+0

Это прекрасно работает, пока iOS не изменит внешний вид кнопок, и вдруг помещает в них границы или фоны, чтобы они больше не выглядели как неприкрашенные изображения. –

2

Вы можете добавить вставку к UIImage вместо UIImageView.

Swift 4

let imageView = UIImageView() 
imageView.contentMode = .scaleAspectFill 
imageView.image = UIImage(named: "example")?.withAlignmentRectInsets(UIEdgeInsets(top: -4, left: 0, bottom: -4, right: 0)) 
+0

Я исправил синтаксис, но это на самом деле не работает – Ixx

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