天天看點

【iOS開發-背景】關于按鈕背景圖檔的拉伸

關于按鈕背景圖檔拉伸與不拉伸的效果

拉伸的效果:

【iOS開發-背景】關于按鈕背景圖檔的拉伸

不拉伸的效果

【iOS開發-背景】關于按鈕背景圖檔的拉伸

拉伸的效果:

【iOS開發-背景】關于按鈕背景圖檔的拉伸

不拉伸的效果

【iOS開發-背景】關于按鈕背景圖檔的拉伸

拉伸原理

iOS開發中,有一個方法可以将圖檔按照指定的形式拉伸,拉伸方式為下圖,一般拉伸部分都為0:

【iOS開發-背景】關于按鈕背景圖檔的拉伸

實作方式

  • 建立一個UIImage的分類
  • 為UIImage擴充一個方法+(UIImage )resizableImage:(NSString )imageName;
  • 然後再按鈕所在的ViewController裡面設定按鈕的背景

分類

@implementation UIImage (Extension)

+(UIImage *)resizableImage:(NSString *)imageName {
    UIImage *image = [UIImage imageNamed:imageName];
    CGFloat w = image.size.width * ;
    CGFloat h = image.size.height * ;
    return [image resizableImageWithCapInsets:UIEdgeInsetsMake(w, h, w, h)];
}

@end
           

controller部分

-(void)viewDidLoad {
    UIImage *normal = [UIImage resizableImage:@"RedButton"];
    UIImage *highlight = [UIImage resizableImage:@"RedButtonPressed"];
    [self.login setBackgroundImage:normal forState:UIControlStateNormal];
    [self.login setBackgroundImage:highlight forState:UIControlStateHighlighted];
}