Advertisement
Guest User

Untitled

a guest
Sep 24th, 2012
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. //  SampleButton.m
  3. //  insetSample
  4. //
  5. //  Copyright (c) 2012  Dirk-Willem van Gulik. All rights reserved.
  6. //
  7. //  Licensed under the ASL or BSD license.
  8.  
  9. #import "SampleButton.h"
  10.  
  11. @implementation SampleButton
  12.  
  13. - (id)initWithCoder:(NSCoder *)decoder {
  14.     self = [super initWithCoder:decoder];
  15.     if (self) {
  16.         [self completeInit];
  17.     }
  18.     return self;
  19. }
  20.  
  21. -(void)setType:(int)aType { type = aType; [self completeInit]; }
  22. -(int)type { return type; }
  23.  
  24. -(void)completeInit {
  25.     UIImage * base = [UIImage imageNamed:@"button.png"];
  26.     UIEdgeInsets edgeInsets = UIEdgeInsetsMake(20,20,20,20);
  27.  
  28.     CGContextRef ctx;
  29.     UIImage * img;
  30.    
  31.     switch (type) {
  32.         case 1: // with insets, drawn straight
  33.             base = [base resizableImageWithCapInsets:edgeInsets];
  34.         case 0: // without insets, drawn straight
  35.             img = base;        
  36.             break;
  37.         case 3:  // with insets; dranw through an image context
  38.             base = [base resizableImageWithCapInsets:edgeInsets];
  39.         case 2:  // without insets; dranw through an image context
  40.             UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0);
  41.             ctx = UIGraphicsGetCurrentContext();
  42.             CGContextDrawImage(ctx, CGRectMake(0,0,self.bounds.size.width,
  43.                                                self.bounds.size.height), [base CGImage]);
  44.  
  45.             img = UIGraphicsGetImageFromCurrentImageContext();
  46.             UIGraphicsEndImageContext();
  47.             break;
  48.         default:
  49.             break;
  50.     }
  51.  
  52.     [self setImage:img forState:UIControlStateNormal];
  53.  
  54.     // Esnure that the image is (also) scaled 'up' and not just down in
  55.     // a non aspect preserving manner.
  56.     //
  57.     [[self imageView] setContentMode: UIViewContentModeScaleToFill];
  58.     self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
  59.     self.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
  60.  
  61. }
  62.  
  63. @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement