iOS各種顯示模式使用及總結(jié)(contentMode,textAligment,contentVerticalAlignment,contentHorizontalAlignment)

初學(xué)者經(jīng)常糾結(jié)于各種控件的各種顯示模式,居中還是居上靠左還是靠右?

在此徹底總結(jié)一下:

  • textAligment:文字顯示模式

NSTextAlignmentLeft      = 0,    // 左對齊
NSTextAlignmentCenter    = 1, // 居中對齊
NSTextAlignmentRight    = 2,   // 右對齊
NSTextAlignmentJustified = 3, // 充滿view來顯示

這四個顯示模式在storeboard里面是這幾個設(shè)置:


storeboard設(shè)置

左對齊,右對齊,居中對齊就不多說了
重點(diǎn)說說一下NSTextAlignmentJustified,他是storeboard中的第四個按鈕
把它和左對齊的效果圖作比較
就能很明顯的看出它的作用:


左對齊
充滿view

擁有textAligment屬性的控件(能夠顯示文字的一般都有):

UITextField
UILabel
UITextView

  • contentHorizontalAlignment\contentVerticalAlignment:內(nèi)容的水平垂直顯示模式

使用較為常見的就是Button的內(nèi)容顯示模式
Button里面有ImageView和Label兩個子控件需要顯示
我們可以分別設(shè)置常用的ImageView的contentMode(下面介紹這個屬性),Label的textAligment
但是要將他們作為一個整體來控制,就需要Button的屬性
contentHorizontalAlignment\contentVerticalAlignment

typedef NS_ENUM(NSInteger, UIControlContentVerticalAlignment) {//垂直方向
    UIControlContentVerticalAlignmentCenter  = 0,
    UIControlContentVerticalAlignmentTop     = 1,
    UIControlContentVerticalAlignmentBottom  = 2,
    UIControlContentVerticalAlignmentFill    = 3,
};
typedef NS_ENUM(NSInteger, UIControlContentHorizontalAlignment) {//水平方向
    UIControlContentHorizontalAlignmentCenter = 0,
    UIControlContentHorizontalAlignmentLeft   = 1,
    UIControlContentHorizontalAlignmentRight  = 2,
    UIControlContentHorizontalAlignmentFill   = 3,
};

在storeboard里面是這幾個設(shè)置:


storeboard中設(shè)置

測試?yán)?代碼中分別設(shè)置了水平靠右,垂直靠上的話,imgeView和Label會一起向左上角靠近(實(shí)際運(yùn)用中一般只單獨(dú)設(shè)置水平方向或者垂直方向)

    button.contentHorizontalAlignment= UIControlContentHorizontalAlignmentLeft;
    button.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
按照左上角模式顯示(黑色部分是圖片 - -)

擁有contentHorizontalAlignment\contentVerticalAlignment屬性的控件(繼承自UIControl的控件或者UIControl本身):
UIControl
UIButton
UITextField

  • contentMode : 內(nèi)容模式(控制內(nèi)容的對齊方式), 一般對UIImageView很有用

typedef NS_ENUM(NSInteger, UIViewContentMode) {
UIViewContentModeRedraw,              
//帶有Scale:可能會被拉伸或者壓縮   
     //帶有Scale - 不帶Aspect:拉伸或者壓縮的時候 不會按照比例             
     UIViewContentModeScaleToFill,    
     //帶有Scale - 帶Aspect:拉伸或者壓縮的時候 會按照比例
     UIViewContentModeScaleAspectFit,  //圖片會適應(yīng)整個ImageView的大小(按照比例縮小擴(kuò)大),全部顯示出來    
     UIViewContentModeScaleAspectFill, //寬高比例不變(原大小顯示) 顯示的時候多余的裁掉   
//不帶Scale:圖片不會被拉伸或者壓縮        
    UIViewContentModeCenter,        
    UIViewContentModeTop,        
    UIViewContentModeBottom,        
    UIViewContentModeLeft,        
    UIViewContentModeRight,        
    UIViewContentModeTopLeft,        
    UIViewContentModeTopRight,        
    UIViewContentModeBottomLeft,
    UIViewContentModeBottomRight,
}
注釋:
以下演示圖片中 : 紅色是背景,黃色是ImageView背景色,白色妹子是圖片

所有顯示模式中
不帶Scale的是較為簡單一些
按照這些顯示模式來顯示,圖片會按照原大小來顯示,不會被拉伸也不會被壓縮,
常用的是UIViewContentModeCenter
讓圖片按照原大小居中顯示:


UIViewContentModeCenter

如果圖片超出控件大小,則圖片就會超出控件顯示,如下圖


UIViewContentModeCenter
下面用力(著重)介紹帶有Scale字眼的模式(圖片會被拉伸或者壓縮)

帶有Scale的三個模式中
有一個是不帶有Aspect字眼的UIViewContentModeScaleToFill
它在拉伸的時候不會按照比例(圖片會變形)
然后非常單純的把整個ImageView填滿:


UIViewContentModeScaleToFill

另外兩個帶有Aspect字眼
他們被拉伸的時候圖片的比例不會改變(圖片不變形)
UIViewContentModeScaleAspectFit:
圖片會完全顯示
圖片等比例縮小至寬等于ImageView的寬
或者高等于ImageView的高為止


UIViewContentModeScaleAspectFit

UIViewContentModeScaleAspectFill:
圖片也會完全顯示(超出控件部分也會顯示)
圖片等比例拉伸至寬等于ImageView的寬
或者高等于ImageView的高為止
UIViewContentModeScaleAspectFill

感謝閱讀
你的支持是我寫作的唯一動力

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,155評論 4 61
  • 目錄 contentMode-顯示模式 背景圖片的拉伸 textAligment-顯示模式 lineBreakMo...
    Ryan___閱讀 1,755評論 0 2
  • 01 上半年“華為要裁減34歲以上員工”的消息,在網(wǎng)上傳的沸沸揚(yáng)揚(yáng),華為輪值CEO徐直軍正式回應(yīng)此消息時,說了一句...
    snail成長閱讀 789評論 0 1
  • 耶和華是我的牧者,我必不至于缺乏! 耶和華要保護(hù)你,從今時直到永遠(yuǎn),你出你入耶和華都要保護(hù)你。 苦難是恩典,患難是...
    凌賢武閱讀 2,046評論 0 0
  • 綠葉白花不漂亮, 待到秋來結(jié)果時。 笑獻(xiàn)果實(shí)怡眾鄉(xiāng), 節(jié)節(jié)高升美名揚(yáng)。
    caoxia閱讀 655評論 4 9