关闭

iOS开发技巧(autolayout自动布局)

标签: iOS开发技巧autolayout自动布
249人阅读 评论(0) 收藏 举报
分类:

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

首先需要说下需求:需要登陆LoginViewController视图View上面的控件居中显示。

下面我就以一个简单的例子,来简要说明使用autolayout的小技巧,

(1)拖拉一个View到LoginViewController.xib的视图上面,调整高度为300,我下面都称其为MiddleView吧,如下图所示,

为了让图片垂直居中显示,我们可以通过键盘的上(↑)下(↓)按键移动View。

(2)拖两个UITextField和一个UIButton到View上面,同时设置了MiddleView的背景色为LightGray,如下图所示,

(3)给MiddleView添加约束,使其水平和竖直居中,先选中MiddleView,然后按照下图操作,

(4)给MiddleView添加宽高(width and height)的约束,上面仅仅添加水平和垂直居中,会有警告,这是因为添加的约束还不够,如下图所示,添加宽高的约束,

(5)给MiddleView上面的空间添加相互间的约束,这时候添加约束就简单多了,先选中MiddleView上面所有的控件,只要点击一个Add Missing Constraints,,如下图所示,

通过上面一些简单的操作,保证登陆界面中的控件不管在3.5寸还是4寸的屏幕上面,都能够居中显示了。运行效果如下所示,

3.5寸屏幕效果图,

4寸屏幕效果图,

总结:这里的autolayout只是简单的内容,我也只是抛砖引玉。更强大的autolayout还有待个人自己去理解。我想要说的是技术的出现总是不会在第一时间用在实践中,这就造成了技术出现了但是没有人用,而过了很长时间以后,才意识到新出现的技术是多么的重要。所以,我们要乐于去拥抱新出现的技术,哪怕现在使用不上,但是慢慢地学习,总有一天会有所用处。这是我对xib和autolayout技术的普及速度的一些理解,现在还有很多人在使用代码编写控件,他们已经不再愿意相信xib和arc的好处,实际上这不利于自己的进步。我感觉现在使用xib和autolayout,让编程不再那么枯燥无味,我们通过拖拖拉拉,调整大小,感觉自己真的像一个设计师一样。

还有,现在苹果iOS8新推出了许多特性,开放了很多的开发者权限,想想就是让人激动,所以赶快学习起来吧。另外苹果的swift语言,我们也要好好学习,因为它真的可能取代OC。那么多Java、.Net开发者之前想转向iOS开发,但是限于设备和语言的鸿沟,他们一直没有机会转型,现在苹果的swift提供的便利,给了很多新手和Web开发老手机会转型,他们都在虎视眈眈,那么作为纯粹的iOS开发者,你赶快行动起来吧。早点学好swift,早点受益。

0
0
查看评论

重写UIButton,用于autoLayout自动布局.图在上,文字在下

模仿百思不得解,先用xib写了,只要在layoutSubViews中写一下imageView,titleLabel的位置即可。 全部代码:https://github.com/kangqingyu/iOSLearn2016g 然后我就想用纯代码试一试:http://git.oschina...
  • kangqingyu
  • kangqingyu
  • 2016-08-03 17:31
  • 593

iOS开发技巧 autolayout自动布局

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

iOS10后,部分自动布局(AutoLayout)布局出错的解决方法

问题的根源在于代码中用到了layoutIfNeeded这个方法, 从官方的Release Notes中,看出iOS10应该是更改了layoutIfNeeded的时机(说是修改了以前的release版本的bug,bug的内容是说:调用layoutIfNeeded的时候,不期望改变view的位置……)...
  • p7767158
  • p7767158
  • 2016-10-10 17:11
  • 1415

IOS autolayout自动布局实例(swift)

第四篇 对于一个新手来说,刚接触自动布局这东西,会被一种叫约束的东西搞得晕头转向,不是少添加了,就是多添加了,造成约束冲突,不过弄明白之后,也就那回事了。 首先先上个最终的效果图上来,一步步做出这个效果,如果里面没有涉及到知识点就从网上各们大大的文章里找了。 上图:此效果图分为上中下三部分,上...
  • shenshucong520
  • shenshucong520
  • 2015-08-18 17:35
  • 858

自动布局神器 -- ZXPAutoLayout框架的使用

简述地址:http://www.jianshu.com/p/0ed897e93909什么是ZXPAutoLayout ? iOS原生的自动布局(NSLayoutConstraint)非常繁琐, 影响开发进度和可读性也不利于维护, 正所谓工欲善其事必先利其器 , 有一个良好的自动布局框架, 则会让我...
  • biggercoffee
  • biggercoffee
  • 2015-12-08 13:52
  • 4566

ios代码实现Autolayout(自动布局)的简单讲解

简介         原理:iOS6.0之后,苹果优化了UI界面的布局方式,提出了自动布局的概念,和之前的Autoresizing相比功能更强大。子视图基于父视图的自动布局显示。都是父视图去添加子视图的约束。       ...
  • fuzheng0301
  • fuzheng0301
  • 2015-08-14 10:48
  • 1084

(iOS)使用autolayout进行复杂布局时 UILabel的相关trick

本文首发于CSDN:http://blog.csdn.net/madongchunqiu/article/details/47960745。给心急的同学先说说结论:(因为我也是一个心急的同学) 对于UILabel,设置number of lines相当于设置了一个纵向的constraint;也即意味...
  • sbt0198
  • sbt0198
  • 2016-09-23 21:59
  • 816

从 Auto Layout 的布局算法谈性能

如何对 iOS 应用的性能进行优化以及 Auto Layout 到底为什么会影响性能?
  • u010124617
  • u010124617
  • 2016-09-02 10:30
  • 1990

iOS开发技巧之autolayout自动布局

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

Xcode5中如何关闭视图的自动布局(AutoLayout)

Xcode5中如何关闭视图自动布局(AutoLayout) 在修改UIImageView transform属性时, 需要将视图的Autolayout(自动布局)关掉, 否则自动布局可能会影响图片变形。 在storyboard中关闭当前视图的自动布局的主要步骤如下: 1.  &#...
  • yang_huan1986
  • yang_huan1986
  • 2014-01-18 12:21
  • 2251
    个人资料
    • 访问:110500次
    • 积分:2389
    • 等级:
    • 排名:第18353名
    • 原创:96篇
    • 转载:180篇
    • 译文:8篇
    • 评论:3条
    最新评论