這個系列的博客主要記錄一下UIKit中各類控件的主要要點和用法鹦马。本篇將介紹一下UILabel文判、UIImageView和UIButton
</br>
一过椎、UILabel
主要屬性
text
文本內(nèi)容</br>textColor
文本顏色</br>font
文本字體(包括字體和字號)</br>textAlignment
對齊方式</br>numerOfLines
行數(shù)(置為0時自動換行)</br>enable
是否可用</br>lineBreakMode
決定一行文本中省略的位置</br>shadowColor/shadowOffset
陰影(在shadowOffset中可以設(shè)置陰影的水平和垂直的偏移方向)</br>
</br>
二、UIImageView
主要屬性
image
圖片資源戏仓。一個UIImage類型的對象</br>contentMode
決定圖片的內(nèi)容顯示模式...ScaleToFill:完全的拉伸或壓縮
...ScaleAspectFit:寬高比不變疚宇,適應(yīng)大小
...ScaleAspectFill:寬高比不變,填充區(qū)域
</br>...Center:居中
...Top/Bottom/Left/Right:置于頂部/底部/左側(cè)/右側(cè)
...TopLeft/TopRight/BottomLeft/BottomRight:置于左上/右上/左下/右下
clipsToBounds
一個布爾類型的屬性赏殃。決定圖片是否被裁減敷待。默認為NO
</br>
創(chuàng)建方式
-
[[UIImageView alloc] init]
創(chuàng)建后需要手動設(shè)置frame
</br> -
[[UIImageView alloc] initWithFrame:]
直接把frame作為參數(shù)傳入
</br> -
[[UIImageView alloc] initWithImage:]
把圖片作為參數(shù)傳入,可以使創(chuàng)建的view的尺寸與圖片一致仁热,但需要手動設(shè)置origin
</br>
實現(xiàn)序列幀動畫
- 給animationImages屬性設(shè)置實例變量榜揖,傳入一個UIImage數(shù)組
- 設(shè)置animationRepeatCount屬性,表示循環(huán)次數(shù)抗蠢,0則無限循環(huán)
- 設(shè)置animationDuration參數(shù)举哟,表示完整播放完一次動畫所需的時間
- 調(diào)用startAnimating方法,開始播放幀動畫
- 調(diào)用stopAnimation方法迅矛,停止播放幀動畫
</br>
UIImage加載圖片的2種方式
- 通過
imageNamed:
方法獲取保存在Assets中火保存在項目資源包中的圖片妨猩。但是需要注意:
- 放到Assets.xcassets中的圖片,默認就有緩存
- 就算指向它的指針被銷毀诬乞,該資源也不會從內(nèi)存中被釋放掉
- 適合保存常用的圖片
- 通過
imageWithContentsOfFile:
方法獲取保存在項目資源包目錄下的圖片册赛,不能獲取保存在Assets中的圖片
- 打包后,Assets文件夾會變成Assets.car文件震嫉,無法拿到路徑森瘪,因此就無法通過
imageWithContentsOfFile:
方法獲取圖片
- 指向他的指針被銷毀時,資源會從內(nèi)存中被釋放掉
- 適合保存不常使用的圖片票堵,或大量的圖片資源
</br>
三扼睬、UIButton
一般情況下,點擊某個控件后,做出相應(yīng)反應(yīng)的按鈕都是按鈕窗宇。
按鈕中可以既顯示文本又顯示圖片措伐,并可以自定義按鈕中文本和圖片的位置。
1.UIButton的狀態(tài)
normal
普通狀態(tài)军俊,在默認情況下顯示highlighted
高亮狀態(tài)disabled
不可用狀態(tài)
2.Storyboard中UIButton的常用屬性
- Type
- System 系統(tǒng)默認格式
- Custom 自定義格式(用得最多的)
- Detail Disclosure 詳情按鈕
- Add Contact 添加聯(lián)系按鈕
- State Configer
- Default
- Highlighted
- Disabled
- Shadow Offset
偏移值只能是正值 - Image
按鈕中的圖片侥加,默認情況下始終居中顯示,不會隨按鈕尺寸變化拉伸 - BackgroundImage
按鈕的背景圖片粪躬,會始終被拉伸放縮至與按鈕的尺寸大小一致
</br>
3.UIButton在代碼中的使用
創(chuàng)建
使用buttonWithType:
方法初始化担败,并設(shè)置按鈕的類型(按鈕的類型只能在初始化的時候設(shè)置)設(shè)置文字
需要分狀態(tài)進行設(shè)置,button的text屬性是只讀的镰官。因此需要調(diào)用:
setTitle:forState:
等方法來設(shè)置按鈕在不同狀態(tài)下的文本屬性設(shè)置內(nèi)容圖片
與設(shè)置文字相同提前,需要區(qū)分狀態(tài)
setImage:forState:
設(shè)置背景圖片
與設(shè)置文字相同,需要區(qū)分狀態(tài)
setBackgroundImage:forState:
在代碼中調(diào)用方法
調(diào)用addTarget:action:forControlEvents:
方法來為按鈕增加一個觸發(fā)方法:第一個參數(shù)執(zhí)行方法的控制器
第二個參數(shù)表示執(zhí)行的方法(SEL類型)
第三個參數(shù)表示觸發(fā)按鈕的事件類型
</br>
4.改變UIButton中圖片和文字的位置
- 方式1:在自定義的UIButton子類中重寫兩個方法來修改
- 重寫
titleRectForContentRect:
方法修改文字的frame - 重寫
imageRectForContentRect:
方法修改圖片的frame - 方式2:在自定義的UIButton子類中重寫
layoutSubviews
方法來修改子控件布局
</br>
5.改變UIButton中的內(nèi)邊距
- 通過設(shè)置按鈕的
contentEdgeInsets
來設(shè)置所有內(nèi)容的內(nèi)邊距 - 通過設(shè)置按鈕的
imageEdgeInsets
來設(shè)置圖片的內(nèi)邊距 - 通過設(shè)置按鈕的
titleEdgeInsets
來設(shè)置文字的內(nèi)邊距