iOS圖片拉伸的方法
假如下面的一張圖片,是用來(lái)做按鈕的背景圖片的,原始尺寸是76 × 40

我們通過(guò)代碼將這張圖片設(shè)置為按鈕的背景圖片,假如我們將創(chuàng)建好的按鈕的寬高設(shè)置為:(W=200, H=50)代碼如下:
// 初始化按鈕 UIButton *button = [[UIButton alloc] init]; // 設(shè)置尺寸 button.frame = CGRectMake(100, 200, 200, 50); // 加載圖片 UIImage *image = [UIImage imageNamed:@"ppm_new_shuliang.png"]; // 設(shè)置背景圖片 [button setBackgroundImage:image forState:UIControlStateNormal]; // 添加按鈕 [self.view addSubview:button];
結(jié)果如下:圖片被拉伸了。

原因分析:是將原是尺寸為76 × 40 的圖片拉伸成了W=200, H=50;
解決方案:
1.找美工重做一張較大的圖片,這樣的話就會(huì)出現(xiàn)軟件包將來(lái)會(huì)變大,占用空間更大;如果我們要經(jīng)常修改按鈕的frame,美工設(shè)計(jì)比較繁瑣;
2.蘋(píng)果為我們提供了關(guān)于圖片拉伸的API,我們可以直接利用代碼實(shí)現(xiàn);
修改后:
// 初始化按鈕 UIButton *button = [[UIButton alloc] init]; // 設(shè)置尺寸 button.frame = CGRectMake(100, 200, 200, 50); CGFloat top = 0; // 頂端蓋高度 CGFloat bottom = 0 ; // 底端蓋高度 CGFloat left = 22; // 左端蓋寬度 CGFloat right = 22; // 右端蓋寬度 UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right); // 加載圖片 UIImage *image = [UIImage imageNamed:@"ppm_new_shuliang.png"]; image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch]; // 設(shè)置背景圖片 [button setBackgroundImage:image forState:UIControlStateNormal]; // 添加按鈕 [self.view addSubview:button];

還有一種設(shè)置方法:


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IOS 開(kāi)發(fā)之操作圖庫(kù)自定義控制器
這篇文章主要介紹了IOS 開(kāi)發(fā)之操作圖庫(kù)自定義控制器的相關(guān)資料,需要的朋友可以參考下2017-02-02
詳解iOS App中UiTabBarController組件的基本用法
UiTabBarController組件即是用來(lái)創(chuàng)建App中的Tab視圖切換選項(xiàng)欄,下面將詳解iOS App中UiTabBarController組件的基本用法,包括左右滑動(dòng)切換標(biāo)簽頁(yè)等基本功能的實(shí)現(xiàn),需要的朋友可以參考下2016-05-05
iOS藍(lán)牙開(kāi)發(fā)數(shù)據(jù)實(shí)時(shí)傳輸
這篇文章主要為大家詳細(xì)介紹了iOS藍(lán)牙開(kāi)發(fā)數(shù)據(jù)實(shí)時(shí)傳輸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
iOS 隱私權(quán)限和通過(guò)openURL實(shí)現(xiàn)跳轉(zhuǎn)實(shí)例
這篇文章主要介紹了iOS 隱私權(quán)限和通過(guò)openURL實(shí)現(xiàn)跳轉(zhuǎn)實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
iOS中的應(yīng)用啟動(dòng)原理以及嵌套模型開(kāi)發(fā)示例詳解
這篇文章主要介紹了iOS中的應(yīng)用啟動(dòng)原理以及嵌套模型開(kāi)發(fā)示例詳解,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-12-12
iOS應(yīng)用中使用AsyncSocket庫(kù)處理Socket通信的用法講解
這篇文章主要介紹了iOS應(yīng)用中使用AsyncSocket庫(kù)處理Socket通信的用法講解,AsyncSocket同時(shí)支持TCP和UDP,文中展示了其建立斷開(kāi)連接及發(fā)送接收消息的操作,very好用,需要的朋友可以參考下2016-05-05
詳解ios監(jiān)聽(tīng)reloadData刷新列表完畢的時(shí)機(jī)
這篇文章主要介紹了詳解ios監(jiān)聽(tīng)reloadData刷新列表完畢的時(shí)機(jī),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11

