Skip to content

Instantly share code, notes, and snippets.

@ianlevesque
Created March 30, 2010 01:33
Show Gist options
  • Save ianlevesque/348653 to your computer and use it in GitHub Desktop.
Save ianlevesque/348653 to your computer and use it in GitHub Desktop.
Take images created in Dashcode and prepare them for iPhone or iPad SDK UIButtons
//
// ButtonStyling.h
//
// Created by Ian Levesque on 3/29/10.
//
#import <UIKit/UIKit.h>
@interface UIImage(ButtonStyling)
+ (UIImage *) buttonImageNamed:(NSString *)buttonPrefix;
+ (UIImage *) buttonClickedImageNamed:(NSString *)buttonPrefix;
@end
//
// ButtonStyling.m
//
// Created by Ian Levesque on 3/29/10.
//
#import "ButtonStyling.h"
static UIImage * ConcatenateButtonImages(UIImage *leftImage, UIImage *middleImage, UIImage *rightImage) {
UIGraphicsBeginImageContext(CGSizeMake([leftImage size].width + [middleImage size].width + [rightImage size].width,
[leftImage size].height));
[leftImage drawInRect:CGRectMake(0, 0, [leftImage size].width, [leftImage size].height)];
[middleImage drawInRect:CGRectMake([leftImage size].width, 0,
[middleImage size].width, [leftImage size].height)];
[rightImage drawInRect:CGRectMake([leftImage size].width + [middleImage size].width, 0,
[rightImage size].width, [leftImage size].height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return [newImage stretchableImageWithLeftCapWidth:[leftImage size].width topCapHeight:0];
}
@implementation UIImage(ButtonStyling)
+ (UIImage *) buttonImageNamed:(NSString *)buttonPrefix {
UIImage *leftImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_left"]];
UIImage *middleImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_middle"]];
UIImage *rightImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_right"]];
return ConcatenateButtonImages(leftImage, middleImage, rightImage);
}
+ (UIImage *) buttonClickedImageNamed:(NSString *)buttonPrefix {
UIImage *leftImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_left_clicked"]];
UIImage *middleImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_middle_clicked"]];
UIImage *rightImage = [UIImage imageNamed:[buttonPrefix stringByAppendingString:@"_right_clicked"]];
return ConcatenateButtonImages(leftImage, middleImage, rightImage);
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment