iOS 中UIView contentMode 屬性總結

 

1.textAligment : 文字的水平方向的對齊方式

  • 取值
NSTextAlignmentLeft      = 0,    // 左對齊
NSTextAlignmentCenter    = 1,    // 居中對齊
NSTextAlignmentRight    = 2,    // 右對齊
  • 哪些控件有這個屬性
  • 通常可以顯示文字的控件都有這個屬性ui

     UITextFieldspa

     UILabelcode

     UITextView ...blog

(UILabel 默認是居中對齊的,並無提供頂部對齊的方式-_-,可使用以下的方式實現:)繼承

好比設置Label 的numberOflines = 2, 能夠直接將要顯示的後面拼接個 "\n",這樣不管文字夠不夠兩行,文字都可以靠左上方對齊了 😎圖片

for(int i=0; i<newLinesToPad; i++)
    self.text = [self.text stringByAppendingString:@"\n "];

    此方法更加簡單粗暴,可是頗有效。其方法是在文本後面加多一些\n。
須要注意的是,\n後還得加至少一個空格,不然多餘的\n會被UILabel忽略。從這一點上看,UILabel彷佛又過於「聰明」了。 其餘方式實現label頂端對齊能夠參考:http://blog.devtang.com/2011/11/20/set-uilabel-text-align-top/string

2.contentVerticalAlignment : 內容的垂直方向的對齊方式

  • 取值
UIControlContentVerticalAlignmentCenter  = 0, // 居中對齊
UIControlContentVerticalAlignmentTop     = 1, // 頂部對齊
UIControlContentVerticalAlignmentBottom  = 2, // 底部對齊

 

  • 哪些控件有這個屬性it

    繼承自UIControl的控件或者UIControl自己class

        UIControlobject

        UIButton

        UITextField...

3.contentHorizontalAlignment : 內容的水平方向的對齊方式

  • 取值
UIControlContentHorizontalAlignmentCenter = 0, // 居中對齊
UIControlContentHorizontalAlignmentLeft   = 1, // 左對齊
UIControlContentHorizontalAlignmentRight  = 2, // 右對齊

 

  • 哪些控件有這些屬性

        繼承自UIControl的控件或者UIControl自己

         UIControl

         UIButton

         UITextField....

更具第2,第3點 就能夠方便的設置 btn 的文字以及圖片的各類對齊方式了,如btn設置:

btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

btn.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

此時按鈕的內容就會靠左上角對齊了

4.contentMode : 內容模式(控制內容的對齊方式), 通常對UIImageView頗有用

  • 取值

     規律:
    
     1.Scale : 圖片會拉伸
    
     2.Aspect : 圖片會保持原來的寬高比
    
     3. AspectScale */
    
    // 前3個狀況, 圖片都會拉伸
    
    // (默認)拉伸圖片至填充整個UIImageView(圖片的顯示尺寸會跟UIImageView的尺寸同樣)
    
        UIViewContentModeScaleToFill,
    
        // 按照圖片原來的寬高比進行伸縮, 伸縮至適應整個UIImageView(圖片的內容不能超出UIImageView的尺寸範圍)
    
        UIViewContentModeScaleAspectFit,
    
        // 按照圖片原來的寬高比進行伸縮, 伸縮至 圖片的寬度和UIImageView的寬度同樣 或者 圖片的高度和UIImageView的高度同樣
    
        UIViewContentModeScaleAspectFill,
    
        // 後面的全部狀況, 都會按照圖片的原來尺寸顯示, 不會進行拉伸
    
        UIViewContentModeRedraw,  // 當控件的尺寸改變了, 就會重繪一次(從新調用setNeedsDisplay, 調用drawRect:)
    
        UIViewContentModeCenter,
        UIViewContentModeTop,
        UIViewContentModeBottom,
        UIViewContentModeLeft,
        UIViewContentModeRight,
        UIViewContentModeTopLeft,
        UIViewContentModeTopRight,
        UIViewContentModeBottomLeft,
        UIViewContentModeBottomRight,

     

  • 哪些控件有這個屬性

    全部UI控件都有

須要注意的是:

 若是有多個屬性的做用衝突了, 只有1個屬性有效(就近原則)(例如:同時設置了btn的contentMode和contentVerticalAlignment,由於第二個約束是直接針對btn的因此只有第二個屬性纔有效!)

相關文章
相關標籤/搜索