iOS如何固定UITableView中cell.imageView.image的圖片大小
前言
凡是進(jìn)行iOS開(kāi)發(fā)的,基本上都會(huì)遇到要展示列表,或者即使不是標(biāo)準(zhǔn)列表,但由于數(shù)量不固定,也需要如同列表一樣從上往下顯示、加載的情況。這些,都繞不過(guò)對(duì)UITableView的使用。
在iOS開(kāi)發(fā)中UITableView可以說(shuō)是使用最廣泛的控件,我們平時(shí)使用的軟件中到處都可以看到它的影子,類(lèi)似于微信、QQ、新浪微博等軟件基本上隨處都是UITableView。當(dāng)然它的廣泛使用自然離不開(kāi)它強(qiáng)大的功能。
我們經(jīng)常在開(kāi)發(fā)過(guò)程中會(huì)用到默認(rèn)UITableView的cell.imageView.image
,如果圖片尺寸剛好跟我們想要的尺寸一樣的話(huà)倒也相安無(wú)事,但總是有意外的,經(jīng)常從接口獲取的圖片尺寸大小是不固定的
例如下圖1-1:
圖1-1
圖片的尺寸大于cell的高度,所以就被“撐爆”了,顯得非常不美觀、和諧,如果cell的高度不固定,圖片尺寸又不同,那效果就更加難看了,那我們?cè)趺醋瞿兀?/p>
你們肯定有多種解決方法了:
1、自定義cell(如果簡(jiǎn)單的cell的話(huà)這個(gè)有點(diǎn)麻煩,又要新建cell文件····)
2、利用UIGraphicsBeginImageContextWithOptions函數(shù)來(lái)處理(目前為止我覺(jué)得最簡(jiǎn)單的方法)
UIImage * icon = [UIImage imageNamed:@"goods_1"]; CGSize itemSize = CGSizeMake(36, 36);//固定圖片大小為36*36 UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0.0);//*1 CGRect imageRect = CGRectMake(0, 0, itemSize.width, itemSize.height); [icon drawInRect:imageRect]; cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();//*2 UIGraphicsEndImageContext();//*3
完成之后圖示如下圖1-2(是不是瞬間漂亮好多?而且不會(huì)嚴(yán)重變形哦O(∩_∩)O哈哈~):
圖1-2
這里解釋一下
*1
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
這個(gè)函數(shù)用于獲取處理圖片的圖形上下文(context),利用該上下文,你就可以在其上進(jìn)行繪圖,并生成圖片。
- size是創(chuàng)建上下文的大小,同時(shí)也是上下文處理圖形后返回的大小
- opaque透明開(kāi)關(guān),如果圖形完全不用透明,設(shè)置為YES以?xún)?yōu)化位圖的存儲(chǔ)。
- scale縮放因子
*2
調(diào)用UIGraphicsGetImageFromCurrentImageContext()
函數(shù)可從當(dāng)前上下文中獲取一個(gè)UIImage對(duì)象,這樣就講改變了圖片取出來(lái)了
*3
在完成對(duì)圖片的操作之后要關(guān)閉該上下文,所以需要調(diào)用UIGraphicsEndImageContext()
函數(shù)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
iOS自帶動(dòng)畫(huà)效果的實(shí)例代碼
本文給大家分享ios自帶動(dòng)畫(huà)效果的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2016-12-12iOS逆向工程使用LLDB的USB連接調(diào)試第三方App
這篇文章主要介紹了iOS逆向工程使用LLDB的USB連接調(diào)試第三方App,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09iOS實(shí)現(xiàn)步驟進(jìn)度條功能實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于iOS實(shí)現(xiàn)步驟進(jìn)度條功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11IOS實(shí)現(xiàn)的簡(jiǎn)單畫(huà)板功能
本文主要介紹了IOS實(shí)現(xiàn)簡(jiǎn)單畫(huà)板的示例代碼。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04iOS端React Native差異化增量更新的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于iOS端React Native差異化增量更新的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06IOS開(kāi)發(fā)代碼分享之設(shè)置UISearchBar的背景顏色
在項(xiàng)目開(kāi)發(fā)中,我們經(jīng)常要用到UISearchBar,在網(wǎng)上看到了很多關(guān)于去除掉他背景色的方法,都已經(jīng)失效了,今天來(lái)分享一個(gè)正常使用的方法,希望能幫到大家2014-09-09iOS實(shí)現(xiàn)列表與網(wǎng)格兩種視圖的相互切換
相信大家應(yīng)該也都發(fā)現(xiàn)了,在現(xiàn)在很多的電商app中,都會(huì)有列表視圖和網(wǎng)格兩種視圖的相互切換。例如京東和淘寶。這樣更利于提高用戶(hù)的體驗(yàn)度,所以這篇文章小編就是大家分享下利用iOS實(shí)現(xiàn)列表與網(wǎng)格兩種視圖相互切換的方法,文中介紹的很詳細(xì),感興趣的下面來(lái)一起看看吧。2016-10-10