Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. // stretchy
  2. [self setBackgroundImage:backgroundImage forState:UIControlStateNormal];
  3.  
  4. // not stretchy
  5. [self setImage:forgroundImage forState:UIControlStateNormal];
  6.  
  7. UIImageView *bgImageView = [[UIImageView alloc] initWithImage:img];
  8. bgImageView.contentMode = UIViewContentModeScaleAspectFit;
  9. [bgImageView setFrame:CGRectMake(0, 0, videoButton.frame.size.width, videoButton.frame.size.height)];
  10. bgImageView.tag = 99;
  11. [yourButton addSubview:bgImageView];
  12. [yourButton bringSubviewToFront:yourButton.imageView];
  13.  
  14. UIImageView *bgImageView = (UIImageView *)[button viewWithTag:99];
  15. [bgImageView setFrame:CGRectMake(0, 0, newWidth, newHeight)];
  16.  
  17. myButton.titleEdgeInsets = UIEdgeInsetsMake(0, -myImage.width, 0, 0)
  18.  
  19. UIImage *img=[UIImage imageNamed:@"myimage.png"];
  20. CGImageRef imgRef = [img CGImage];
  21. CGFloat imgW = CGImageGetWidth(imgRef);
  22. CGFloat imgH = CGImageGetHeight(imgRef);
  23. CGFloat btnW = myBttn.frame.size.width;
  24. CGFloat btnH = myBttn.frame.size.height;
  25. //get lesser button dimension
  26. CGFloat minBtn=btnW;
  27. if (btnW>btnH) {
  28. minBtn=btnH;
  29. }
  30. //calculate scale using greater image dimension
  31. CGFloat scl=imgH/minBtn;
  32. if (imgW>imgH) {
  33. scl=imgW/minBtn;
  34. }
  35. //scale image
  36. UIImage *scaledImage = [UIImage imageWithCGImage:[img CGImage] scale:(img.scale * scl) orientation:(img.imageOrientation)];
  37. //clean up
  38. UIGraphicsEndImageContext();
  39. //set it on a button
  40. [myBttn setImage:scaledImage forState:UIControlStateNormal];
  41.  
  42. ImageBn.imageView?.contentMode = .scaleAspectFit
  43. ImageBn.setImage(chosenImage, for: .normal)
  44.  
  45. - (void)setHighlighted:(BOOL)highlighted
  46. {
  47. super.highlighted = highlighted;
  48.  
  49. //
  50. //Whenever an image needs to be highlighted, create a dimmed new image that is correctly sized. Below it is a englarged stretched image.
  51. //
  52. if (highlighted != _previousHighlightedSate)
  53. {
  54. _previousHighlightedSate = highlighted;
  55.  
  56. if (highlighted)
  57. {
  58. //Create a black layer so image can dim
  59. _blackLayer = [CALayer layer];
  60. _blackLayer.bounds = self.bounds;
  61. CGRect rect = _blackLayer.bounds;
  62. rect.size.width = rect.size.width*2;
  63. rect.size.height = rect.size.height*2;
  64. _blackLayer.bounds = rect;
  65. _blackLayer.backgroundColor = [[UIColor blackColor] CGColor];
  66.  
  67. //create image layer
  68. _nonStretchImageLayer = [CALayer layer];
  69. _nonStretchImageLayer.backgroundColor = [UIColor blackColor].CGColor;
  70. _nonStretchImageLayer.bounds = CGRectMake(0 , 0, self.bounds.size.width, self.bounds.size.height);
  71. _nonStretchImageLayer.frame = CGRectMake(0 , 0, self.bounds.size.width, self.bounds.size.height);
  72. _nonStretchImageLayer.contentsGravity = kCAGravityResizeAspect;//default is to resize
  73. _nonStretchImageLayer.contents = (id)self.imageView.image.CGImage;
  74. _nonStretchImageLayer.opacity = 0.5;
  75.  
  76. //add layers to image view
  77. [self.imageView.layer addSublayer:_blackLayer];
  78. [self.imageView.layer addSublayer:_nonStretchImageLayer];
  79. }
  80. else
  81. {
  82. //remove from image view
  83. [_blackLayer removeFromSuperlayer];
  84. [_nonStretchImageLayer removeFromSuperlayer];
  85.  
  86. //nil them out.
  87. _blackLayer = nil;
  88. _nonStretchImageLayer = nil;
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement