前言
凡是進行iOS開發的,基本上都會遇到要展示列表,或者即使不是標準列表,但由于數量不固定,也需要如同列表一樣從上往下顯示、加載的情況。這些,都繞不過對UITableView的使用。
在iOS開發中UITableView可以說是使用最廣泛的控件,我們平時使用的軟件中到處都可以看到它的影子,類似于微信、QQ、新浪微博等軟件基本上隨處都是UITableView。當然它的廣泛使用自然離不開它強大的功能。
我們經常在開發過程中會用到默認UITableView的cell.imageView.image
,如果圖片尺寸剛好跟我們想要的尺寸一樣的話倒也相安無事,但總是有意外的,經常從接口獲取的圖片尺寸大小是不固定的
例如下圖1-1:
圖1-1
圖片的尺寸大于cell的高度,所以就被“撐爆”了,顯得非常不美觀、和諧,如果cell的高度不固定,圖片尺寸又不同,那效果就更加難看了,那我們怎么做呢?
你們肯定有多種解決方法了:
1、自定義cell(如果簡單的cell的話這個有點麻煩,又要新建cell文件····)
2、利用UIGraphicsBeginImageContextWithOptions函數來處理(目前為止我覺得最簡單的方法)
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(是不是瞬間漂亮好多?而且不會嚴重變形哦O(∩_∩)O哈哈~):
圖1-2
這里解釋一下
*1
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
這個函數用于獲取處理圖片的圖形上下文(context),利用該上下文,你就可以在其上進行繪圖,并生成圖片。
*2
調用UIGraphicsGetImageFromCurrentImageContext()
函數可從當前上下文中獲取一個UIImage對象,這樣就講改變了圖片取出來了
*3
在完成對圖片的操作之后要關閉該上下文,所以需要調用UIGraphicsEndImageContext()
函數
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答