iOS 中UI控件的各種對齊方式總結


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

  • 取值
NSTextAlignmentLeft      = 0,    // 左對齊 NSTextAlignmentCenter    = 1,    // 居中對齊 NSTextAlignmentRight    = 2,    // 右對齊
  • 哪些控件有這個屬性
  • 一般能夠顯示文字的控件都有這個屬性

     UITextField

     UILabel

     UITextView ...

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

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/

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

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

 

  • 哪些控件有這個屬性

    繼承自UIControl的控件或者UIControl本身

        UIControl

        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的所以只有第二個屬性才有效!)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM