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

iOS 中UI控件的各种对齐方式总结的更多相关文章

  1. iOS 使用UI控件的外观协议UIAppearance进行设置默认UI控件样式

    在iOS开发中,经常会对UINavigationBar的样式进行全局样式.采用的设置方式有两种: 第一种,采用方式如下: [UINavigationBar appearance] 这种是对一类对象的默 ...

  2. iOS基础UI控件介绍-Swift版

    iOS基础UI控件总结 iOS基础控件包括以下几类: 1.继承自NSObject:(暂列为控件) UIColor //颜色 UIImage //图像 2.继承自UIView: 只能相应手势UIGest ...

  3. 关于libgdx中UI控件的旋转和缩放的备忘

    最近遇到这样一个问题,定义了一个ImageButton后,想对按钮进行下旋转,结果setRotation(-90f),不起作用.后来在官网上找到了原因 关于UI控件的旋转 缩放官网上有这样一段话(链接 ...

  4. iOS中UIButton控件的用法及部分参数解释

    在UI控件中UIButton是极其常用的一类控件,它的类对象创建与大多数UI控件使用实例方法init创建不同,通常使用类方法创建: + (id)buttonWithType:(UIButtonType ...

  5. [iOS]技巧集锦:UITableView自定义Cell中的控件无法完全对齐Cell的左边界和右边界

    这是个很诡异的问题,由于一些特殊需求,我的TableView的Cell的背景色是透明,其中的控件会有背景色,第一个控件和最后一个控件我都用IB自动设了约束,对齐Cell的左边界和右边界,但是自动约束很 ...

  6. 如何自定义iOS中的控件

    本文译自 How to build a custom control in iOS .大家要是有什么问题,可以直接在 twitter 上联系原作者,当然也可以在最后的评论中回复我. 在开发过程中,有时 ...

  7. iOS基本UI控件总结

    包括以下几类: //继承自NSObject:(暂列为控件) UIColor *_color;    //颜色 UIImage *_image;    //图像 //继承自UIView:只能相应手势UI ...

  8. ios 中基本控件的定义

    我的开发笔记--UILabel的详细使用及特殊效果 我的开发笔记--UIButton的详细使用 我的开发笔记---UISegmentedControl的详细使用 我的开发笔记---UITextFiel ...

  9. iOS中为控件设置颜色渐变和透明度渐变

    项目中用到地图设置渐变色,查找资料找到两种方法:一种设置颜色,一种设置透明度: //为颜色设置渐变效果: UIView *view = [[UIView alloc] initWithFrame:CG ...

随机推荐

  1. 李洪强iOS开发之-环信04_消息

    李洪强iOS开发之-环信04_消息 消息:IM 交互实体,在 SDK 中对应的类型是 EMMessage.EMMessage 由 EMMessageBody 组成. 构造消息   构造文字消息 EMT ...

  2. Android 如何在Java代码中手动设置控件的marginleft

    1.定义LayoutParams LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.La ...

  3. 简单的信誉算法 js处理

    $(document).ready(function(){ // 初始化 var credit = "{sh:$info.credit}"; var res = getCredit ...

  4. 解决WebService 测试窗体只能用于来自本地计算机的请求

    问题: 今天上 午,WebService部署成站点之后,如果在本地测试webservice可以运行,在远程却显示“测试窗体只能用于来自本地计算机的请求”或 者"The test form i ...

  5. C# winform 渐变效果

    在用到vs的兴奋过程中,想给程序做个启动画面,我采用了显示Aform,过一段时间,隐藏这个Aform,showdialog下一个Bform,closeAForm这个方法来做了,不知道大家有没有跟好的办 ...

  6. Xcode 配置常用变量(SRCROOT, PROJECT_DIR, PROJECT_NAME)

    https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/ ...

  7. 《C#并行编程高级教程》第7章 VS2010任务调试 笔记

    没有什么好说的,主要是将调试模式下的Parallel Tasks窗体和Parallel Stacks窗体.折腾一下应该比看书效果好.(表示自己没有折腾过) 另外值得注意的是,主线程不是一个任务.所以主 ...

  8. Installing EF Power Tools into VS2015

    TLDR: If you don’t want to do the tasks (even though they are so easy) you can download the updated ...

  9. spring 的配置 bean>>property>>name属性

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep解决方法

    14/03/26 23:10:04 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried ...