iOS开发技巧之autolayout自动布局

autolayout自动布局技术在iOS6就已经推出了,但是因为很多人一开始不习惯使用xib编程,而是坚持使用代码布局控件,所以autolayout并没有普及的太快。但是现在随着越来越多的人开始使用xib,怎样适配不同屏幕的尺寸和横竖屏,成了亟待解决的问题,好在两年前就已经推出并且日臻完善的xib autolayout技术可以完美的解决。

AutoLayout是一种基于约束的,描述性的布局系统。是一种相对性布局,区别之前的Autoresizing 来说,它的扩张性更大。在iOS6中发布的一种布局方法,在iOS7中官方热烈推崇使用AutoLayout进行布局。

 

想使用AutoLayout需要打开一个开关:(在Xcode4.6以上版本默认选中)

 

  1. 打开storybord或xib

                       

点击后,会在中间的编辑区域就会显示。

 

在下方的几个按钮是Xcode4.6以上版本才出现的。

 

以上按钮是用Autolayout可视化布局按键

 

 :多视图校准约束布局按钮

:单视图约束布局按钮

:自动约束布局按钮

 

在iOS7里控制器根视图的两条布局线

 

开发过iOS7的人都知道,在iOS7的状态栏是没有那20点,都是视图状态条一体化,所以官方提供了两条参考线,为了解决iOS6&7屏幕适配问题。

可以点击它,观看他们在视图中是在那里布线,如下:

 

Top Layout Guide

这个是用具在iOS7中没有状态的20px中使用的一条约束线用法,按紧ctrl键,鼠标点击Top Layout Guide 链接对于视图如下操作

 

 

 

horizontal spacing:水平间距

vertical spacing:垂直间距

 

因为Top的参考线在上面,选中垂直间距。

 

操作后,在iOS7会空出状态栏的20px高度。在iOS6中则约束不变。

在视图中出现对应的垂直参考线,可以双击或在右侧属性栏中进行设置。

 

 

或者

 

1选中约束

2点击右侧属性栏中第4个选项卡

3进行对约束的设置

约束属性

Relation: 约束模式

     Equal:相等(常用

     Less Tran or Equal: 小于等于 <=

     Greater Tran or Equal: 大于等于 >=

Constant:约束距离,也可以说是间距(常用

     Standard:标准

Priority:约束优先级(常用

假设有两条相同的类型的约束,一条约束优先级1000的,另一条是800的,它会优先执行1000的那条约束。

Placeholder: 占位符

 

 

在这里可以看得到约束不完整,

  1. 点击上方剪头可以查看错误信息
  2. 可以查看在此视图中有多少约束

约束成立规则:

  1. 宽高要需要固定
  2. 在垂直和水平中,最少有一条间距约束

 

例子:假设我有一种需求:

  1. Button于根视图左侧要有10px
  2. Button于根视图上方要有20px
  3. 宽高不拉伸
  4. 在iOS6&7适配

 

那么已经垂直上方有一条约束,双击那一条约束,将约束间距设置成20,如下图:

 

 

 

 

1.选中Button

2.点击

3.点击水平左侧添加一条约束(约束的添加于Autoresizing,用法一样,固定你需要想固定的位置,比Autoresizing,更好的地方是可以约束固定的位置大小尺寸)

4.创建约束

 

那么就成功创建了一条约束。约束线的颜色问题,橘色:代表约束有问题,蓝色:代表约束已成立。

如上垂直约束线设置,将约束间距设置成20,如下

 

 

固定尺寸宽高

 

 

1.选中Button

2.点击

3. 固定尺寸宽高,防止iPhone4,5尺寸不拉伸或压缩

4.创建约束

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于一名本科应届生在 iOS 开发方面的面试,通常会涉及以下内容: 1. Swift 语言基础:面试官可能会问你关于 Swift 语言的基本语法、数据类型、集合类型、函数、闭包等方面的问题。确保你对 Swift 语言的基础知识有一定的了解。 2. iOS 开发基础:你需要掌握 iOS 开发的基本框架和概念,如 UIKit、AutoLayout、Core Data、Networking 等。了解 MVC 架构、生命周期、UI 组件、数据持久化等内容。 3. Xcode 工具使用:熟悉 Xcode 的使用和常用功能,如项目创建、调试、界面设计等。 4. UI/UX 设计:了解基本的 UI/UX 设计原则和设计模式,能够根据设计稿实现界面布局和样式。 5. 网络通信:了解网络请求的原理和常用库,如 Alamofire、NSURLSession 等。了解 RESTful API 的基本概念和使用。 6. 数据库和数据持久化:熟悉 Core Data 或其他常用的数据库框架,能够进行数据的增删改查操作。 7. 版本控制工具:熟悉 Git 的基本使用,包括代码提交、分支管理、冲突解决等。 8. 项目经验:准备好介绍你在学习过程中完成的项目,包括项目目标、技术难点、解决方案等。展示你的实际开发经验和能力。 除了上述内容,还有可能会问到算法和数据结构、性能优化、多线程编程等相关知识。在面试前,建议你复习以上内容,并准备一些常见面试题的回答,以便在面试中更好地展示你的技能和潜力。祝你面试顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值