iOS如何固定UITableView中cell.imageView.image的圖片大小

來源:互聯網
上載者:User

標籤:code   方法   複製   UI   不用   學習   縮放   src   .gz   

凡是進行ios開發的,基本上都會遇到要展示列表,或者即使不是標準列表,但由於數量不固定,也需要如同列表一樣從上往下顯示、載入的情況。這些,都繞不過對UITableView的使用。

在iOS開發中UITableView可以說是使用最廣泛的控制項,我們平時使用的軟體中到處都可以看到它的影子,類似於、QQ、新浪微博等軟體基本上隨處都是UITableView。當然它的廣泛使用自然離不開它強大的功能。

我們經常在開發過程中會用到預設UITableView的cell.imageView.image,如果圖片尺寸剛好跟我們想要的尺寸一樣的話倒也相安無事,但總是有意外的,經常從介面擷取的圖片尺寸大小是不固定的

例如1-1:


圖1-1

圖片的尺寸大於cell的高度,所以就被“撐爆”了,顯得非常不美觀、和諧,如果cell的高度不固定,圖片尺寸又不同,那效果就更加難看了,那我們怎麼做呢?

你們肯定有多種解決方案了:

1、自訂cell(如果簡單的cell的話這個有點麻煩,又要建立cell檔案····)

2、利用UIGraphicsBeginImageContextWithOptions函數來處理(目前為止我覺得最簡單的方法)

  1. UIImage * icon = [UIImage imageNamed:@"goods_1"];
  2. CGSize itemSize = CGSizeMake(36, 36);//固定圖片大小為36*36
  3. UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0.0);//*1
  4. CGRect imageRect = CGRectMake(0, 0, itemSize.width, itemSize.height);
  5. [icon drawInRect:imageRect];
  6. cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();//*2
  7. UIGraphicsEndImageContext();//*3
複製代碼

完成之後圖示如1-2(是不是瞬間漂亮好多?而且不會嚴重變形哦O(∩_∩)O哈哈~):


圖1-2

這裡解釋一下

*1

UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)這個函數用於擷取處理圖片的圖形上下文(context),利用該上下文,你就可以在其上進行繪圖,並產生圖片。

  • size是建立內容相關的大小,同時也是上下文處理圖形後返回的大小
  • opaque透明開關,如果圖形完全不用透明,設定為YES以最佳化位元影像的儲存。
  • scale縮放因子

*2

調用UIGraphicsGetImageFromCurrentImageContext()函數可從當前上下文中擷取一個UIImage對象,這樣就講改變了圖片取出來了

*3

在完成對圖片的操作之後要關閉該上下文,所以需要調用UIGraphicsEndImageContext()函數

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對之家的支援。

http://www.kmjdad.com/
http://www.jnsjzyy.com/
http://www.czhkwl.com/
http://www.express-o2o.com/
http://www.gzjindao.com/
http://www.chumingchuanmeiyishu.com/
http://www.thcxb.com/
http://www.xingguangkeji.com/
http://www.gdrhsy.com/
http://www.clhuiji.com/
http://www.nxjianye.com/
http://www.tjmingsheng.com/
http://www.gangguan022.com/
http://www.zyjbp.com/
http://www.qianhangmy.com/
http://www.tzminbell.com/

iOS如何固定UITableView中cell.imageView.image的圖片大小

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.