Insets à UIImageView?
j'aimerais réaliser:
- échelle pour remplir mode de vue d'image
- Insète à
UIImageView
de sorte que l'image ne correspond pas aux bords duUIImageView
Bottomline: je veux augmenter la surface tactile du UIImageView
sans étirer l'image au-delà d'une certaine taille.
est-ce possible par storyboard ? Si non quelqu'un peut dire comment le faire par programmation ?
je peux obtenir une fonctionnalité similaire grâce à un UIButton
et à la mise en place de l'image insérée dans le storyboard, mais je ne peux pas trouver une telle chose avec UIImageView
.
4 réponses
en utilisant la méthode indiquée ici :
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];
maintenant vos insets deviennent 100-80 i.e. 20 .
il s'agit d'une solution de contournement pour fournir des insets à UIImageView. Les meilleures réponses sont les bienvenues.
il semble que vous voulez avoir une vue d'image tactile, alors pourquoi ne pas utiliser un UIButton avec l'image et les gaines imageedge?
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];
vous pouvez ajouter inset à UIImage
au lieu de UIImageView
.
Swift 4
let imageView = UIImageView()
imageView.contentMode = .scaleAspectFill
imageView.image = UIImage(named: "example")?.withAlignmentRectInsets(UIEdgeInsets(top: -4, left: 0, bottom: -4, right: 0))
vous pouvez ajouter un UIView
d'abord et ensuite vous ajoutez votre UIImageView
à l'intérieur du UIView
avec un rembourrage de tout ce que vous voulez, et si vous voulez que votre geste soit affecté seulement dans UIImageView
, faites-le UserInteractionEnable à oui ou si vous voulez que le geste soit dans le tout alors vous pouvez ajouter le geste à l'ensemble UIView