商业

l67.com传奇国际开始iOS 7中自动布局教程(一)

字号+ 作者:l67.com传奇国际 来源:未知 2017-12-21 19:59 我要评论( )

到目前为止,若是你的设想相当的复杂,那么你必需编写大量的代码来顺应如许的结构。你该当很欢快,现正在如许的环境再也不存正在了--iOS6为iPhone和iPad带来了一个极好的新特征:从动结构。X 感激翻译小构成员answer-huang(博客)热心翻译。若是您有不错的

  到目前为止,若是你的设想相当的复杂,那么你必需编写大量的代码来顺应如许的结构。你该当很欢快,现正在如许的环境再也不存正在了--iOS6为iPhone和iPad带来了一个极好的新特征:从动结构。X

  感激翻译小构成员answer-huang(博客)热心翻译。若是您有不错的原创或译文,欢送提交给我们,更欢送其他伴侣插手我们的翻译小组(联系)。

  提醒:团队成员Jatthijs Hollemans(iOS 初级系列做者)曾经将这篇文章移植到iOS7 feast上。但愿你可以或许喜好。

  你能否已经想让你的app正在反正屏标的目的上看起来都表示优良而受挫?能否正在做支撑iPhone和iPad屏幕结构界面时几近大小便失禁?今天我将给你带来好动静!

  一曲为大小不异的屏幕设想一个用户界面并不难,但若是屏幕的尺寸改变的话,UI元素的位置和大小也需要响应的做出改变。

  到目前为止,若是你的设想相当的复杂,那么你必需编写大量的代码来顺应如许的结构。你该当很欢快,现正在如许的环境再也不存正在了--iOS6为iPhone和iPad带来了一个极好的新特征:从动结构。Xcode 5和 iOS7中对从动结构做出了改善!若是你已经测验考试着正在Xcode4中利用从动结构并最终做出放弃,现正在是该给Xcode5一次机遇了。

  正在你的法式中,从动结构不只能够很容易的支撑分歧大小的屏幕,一个额外的功能,它也使得当地化几乎变得微不脚道。你不再需要为每种你但愿支撑的言语建立新的nibs或storyboards,包罗像Hebrew或Arabic如许从左到左的言语。

  ,我们进一步会商过这个教程,然后有一个基于这个学问点完整的新章节,而且向你展现若何通过代码完全释放出从动结构的能量。

  留意:我们曾经起头将iOS6教程中响应的章节更新到iOS7-这只是先给大师解解馋!当我们完成后,所有iOS6 PDF教程的订阅者将会获得免费的更新下载。

  你必定很熟悉autosizing masks-也被认为是springs&struts模式。autosizing mask决定了当一个视图的父视图大小改变时,其本身需要做出什么改变。它有一个矫捷的或固定不变的margins(struts)吗?它的宽和高要做出什么改变(springs)?

  举个例子,一个宽度矫捷的视图,若是其父视图边框,那么它也会响应的变宽。一个视图左边具有固定的margin,那么它的左边缘将会一曲粘住其父视图的左边缘。

  autosizing系统正在简单的环境下很是见效,但当你结构变得更复杂时,它立马跪了。让我们看一个springs和struts不克不及处置的示例。

  打开Xcode5,建立一个基于Single View Application模板的iPhone项目。叫做StrutsProblem:

  点击Main.storyboard。正在你做此外之前,起首将这个storyboard的从动结构关了。你需要正在File inspector,第一个选项的第六个tabs里:

  将Use Autolayout的box勾选去掉。现正在storyboard利用旧的struts-and-springs模子。

  留意:任何你利用Xcode4.5或更高版本中,nib或者storyboard文件都默认激活了从动结构。由于从动结构是iOS6以及以上系统的一个新特征,若是你想利用最新的Xcode开辟兼容iOS5的法式,你需要将这个选项去掉。

  每个视图的inset到窗口的距离都是20点;视图之间的距离也是20点。底部的视图的宽是280点,上面两个视图的宽都是130点。所有的视图的高都是254。

  正在iPhone Retina 4-inch simulator上运转这个法式,而且将模仿器扭转到landscape。法式看起来便变成这副鬼样,这不是我想象的那样:

  留意:你能够利用Hardware\Rotate Left和Rotate Right菜单选项扭转模仿器,或者通过按下键盘上的

  很较着,三个视图的autosizing masks留下了一些需要改良的处所。将左上方视图的autosizing设置改成如许:

  这将会让视图贴附左上边缘(不是左下边缘),而且当父视图大小改变时,从头调整本身程度和垂曲标的目的的大小。

  曾经很接近了,但又不完全一样。视图之间的padding不准确。换个说法就是视图的大小不完全准确。问题出正在当父视图改变大小时,autosizing masks告诉子视图调整大小,但又没告诉子视图该调整几多(坑儿?)。

  你能够调戏autosizing masks-好比,改变矫捷宽度和高度设置(springs)-你不会获得完全准确的三个间距20点的视图。

  正在扭转用户界面之前、之间、之后,UIKit会发送一些动静到你的视图节制器,你能够截获这些动静,从而对你UI做出改变。代表性的像viewWillLayoutSubviews,你会沉写这个方式从而改变任何需要从头陈列的视图的frame。

  切换到Assistant Editor模式,按住Ctrl,将三个视图都拖到ViewController.m中去:

  property(weak,nonatomic)IBOutletUIView*topLeftView;

  property(weak,nonatomic)IBOutletUIView*topRightView;

  property(weak,nonatomic)IBOutletUIView*bottomView;

  当视图节制器扭转到一个新的标的目的,这个回调将会被挪用。它会监控视图节制器扭转的标的目的,而且恰当的调整视图大小-正在这种环境,按照已知iPhone屏幕大小会有一个hard-code(将可变变量用一个固定值来取代的方式叫做hard-code)偏移。这个回调会正在一个动画block中发生,所以会动态的改变大小。

  临时还不要运转这个法式。起首你需要按下面的样子从头保留三个视图的autosizing masks,不然autosizing mechanism将会和你正在viewWillLayoutSubviews中设置的位置和大小冲突。

  如许就能够了,运转法式而且翻转到landscape。现正在视图陈列的很是号。翻转回到portrait,经核实,一切都优良。

  如许见效了,可是你需要为这个很是简单的例子编写大量的结构代码。想象一下,为结构付出的勤奋长短常复杂的,出格是个体视图动态的改变大小,或者子视图的个数是不固定的。

  现正在试着正在3.5寸的模仿器上运转法式。我了个去。视图的位置和大小又错了,由于viewWillLayoutSubviews的hard-code坐标是基于4英寸大小的手机(320x568代替320x480)。你能够添加另一个if语句判断屏幕大小,并利用分歧的坐标集,可是你能够看到这个方式很快变得不切现实。

  另一个你能够采纳的方式就是为portrait和landscape模式成立独立的nibs。当设备扭转时,你从另一个nib中拆载视图并替代掉当前的阿谁。但这任然需要做良多工做,而且维护两个nibs也会添加问题。当你利用storyboards替代nibs的时候,这个方式也变得不切现实。

  现正在你将会看到若何用从动结构实现不异的结果,从ViewController.m中移除viewWillLayoutSubviews,由于我们不再需要写任何代码。

  选择Main.storyboard,并正在File inspector当选择开启Use Autolayout:

  让我们把从动结构付诸步履。当你点击顶部两个视图时,按住?键,如许两个视图都被选中了。从Xcode的Editor菜单当选择Pin\Widths Equally:

  再次选中两个不异的视图,选择Editor\Pin\Horizontal Spacing。(虽然你施行完第一次Pin处置后,两个视图看起来仍是被选中的,但其实他们只是正在一个出格的结构关系显示模子里。所以你需要从头选择这两个视图)

  橙色的T-bar外形代表视图间的束缚。目前为止你添加了两个束缚:一个等宽束缚和一个位于两个视图间的程度束缚。束缚表达了视图之间的关系,而且他们是你利用从动结构成立结构最次要的东西。这货看起来有点吓人,可是一旦弄懂它的意义,便变得相当简单。

  T-bars仍然是橘黄色的。这意味这你的结构没有完成;从动结构没有脚够的束缚前提计较出视图的位置和大小。处理法子即是添加更多束缚,曲到他们变蓝。

  T-bars曾经变蓝了。从动结构现正在曾经有脚够的消息来计较出一个无效的结构。这看起来有点乱七八糟,这是由于等宽和等高束缚前提占去了很大空间。

  运转法式而且...我说吧,不需要写一行代码便运转的很好了。不管你正在哪个模仿器上运转;正在3.5英寸和4英寸设备上,结构都运转优良。

  这很是酷,可是事实你正在这做了什么?从动结构让你表达出结构中的视图和其他每个视图的关系,而不是需要你指出视图有多大,放正在哪儿。你需要放置以下这些关系(即我们所谓的束缚)到结构中:

  1.左上角和左上角的视图老是有相等的宽度(也就是pin中第一个widths equally号令)。

  2.左上角和左上角的视图程度标的目的有20点距离(也就是pin中的horizontal spacing)。

  4.上面两个视图和下面阿谁视图垂曲标的目的上有20点距离(也就是pin中的vertical spacing)。

  5.视图和屏幕边缘有20点空间(top,bottom,leading和trailing space相对于父视图的束缚)。

  你能够正在左边Document Outline中看到你所有的束缚,组名叫做Constraints(当你为storyboard激活从动结构时才会加进来)。

  若是你正在Document Outline中点击一个束缚,Interface Builder将会正在视图中高亮出它:

  束缚是一个实正在的对象(NSLayoutConstraint),而且他们也有属性。好比,选择上面两个视图的间距束缚前提(叫做Horizontal Space(20)),然后切换到Attributes inspector。你能够正在那里通过编纂Constant字段改变边缘空间的大小。

  从动结构正在描述视图上比springs和struts显得更有表示力。正在这篇教程的残剩部门,你将会学到束缚的一切,以及若何将他们使用到Interface Builder上来构制出分歧品种的结构。

  正如你正在上面测试样例中所看到的一样,从动结构最根基的东西是束缚。一个束缚描述了两个视图间的几何干系。好比,你可能有如许一个束缚:

  从动结构会考虑到所有的束缚,然后为你的视图计较出抱负的位置和大小。你再也不需要亲身为你的视图设置frames了-从动结构会完全基于你为这些视图设置的束缚为你做这个工做。

  从动结构以前,你一曲需要为视图的frames设置hard-code,要么正在Interface Builder中将他们放置正在特定的坐标,或通过传送一个rectangle到initWithFrame:,或者设置视图的frame,bounds或者center属性。

  视图的大小和位置再也不主要了,只要束缚要紧。当然,当你拖一个新建的button或label到画布上时,它会有必然的大小,而且你会将它拖到某一位置,但这是只一个用来告诉Interface Builder若何放置束缚的设想东西。

  利用束缚最大的劣势就是你再也不需要把时间华侈正在坐标上了。相反,你能够向从动结构描述视图若何和其他视图相联系关系,从动结构将会为你完成所有坚苦的工做。这叫做按照目标设想(designing by intent)。

  当你按照目标设想时,你表达的是你想要实现什么,而不需要关怀它若何实现。button的左上角坐标为(20,230),现正在你能够这么说了:button是垂曲居中于它的父视图,而且相对于父视图的左边缘有一个固定的距离。

  利用这个描述,不管父视图多大或多小,从动结构都能够从动计较出你的button需要正在哪儿呈现,

  正在第一部门你看到,即便为几个视图正在反正标的目的上准确的结构都需要做大量的工做。有了从动结构,你能够绕过这些麻烦。若是你准确的设置了束缚,那么正在反正屏标的目的上,结构将不需要做任何改变。

  利用从动结构另一个主要的益处就是当地化。好比德语中的文本,出了名的比老奶奶的裹脚布还要长,适配起来是一件很麻烦的事。再次,从动结构解救了猿,由于它能按照label需要显示的内容从动改变label的大小。

  现正在添加德语,法语或者其他任何一种言语,都只是设置束缚的事,然后翻译文本,然后。。。就没有然后了!

  从动结构不只对扭转有感化;它还能等闲的缩放你UI的大小从而顺应分歧尺寸的屏幕。这并不是巧合,当iPhone5具有更高屏幕的同时,这个手艺也同时加到了iOS中!从动结构能等闲的拉伸你法式的用户界面,从而充满iPhone5垂曲标的目的上多出来的空间。跟着iOS7中的动态类型,从动结构变得愈加主要了。用户现正在能够改变全局字体大小设置--有了从动结构,这将变得很是简单。

  封闭你当前的项目并用Single View Application模板建立一个新的iPhone项目。叫做Constraints。任何用Xcode5建立出来的项目城市从动假定你会利用从动结构,所以你并不需要额外做任何工作。

  点击Main.storyboard打开Interface Builder。拖一个新的Button到画布上。留意当你拖拽的时候,蓝色虚线将会呈现。这写线用来做领导。

  若是之前你曾经利用过Interface Builder,那么你必定看到过这些领导线。这对我们对齐控件有很大的帮帮。

  正在Xcode4中激活从动结构时,领导线有别的一个目标。你任然能够用他们来对齐,可是他们也会告诉你新的束缚将会正在哪儿。若是你将button沿着领导线反标的目的拖拽到左上角时,Xcode4中的storyboard看起来便像如许:

  有两个蓝色的工具从属正在button上面。这些T-bar外形的对象即是束缚了。Xcode 4的Interface Builder中不管你将UI节制器放正在哪儿,它老是会给出无效的束缚。理论上这听起来是个好从见,可是实践起来,正在Interface Builder中利用从动结构却很是坚苦。

  幸运的是,Xcode5中曾经有所好转。将button拖拽到画布上之后并看不到T-bars外形的工具:

  同时正在Document Outline面板中也没用Constraints部门。获得结论:此时button上并没有设置任何束缚。

  那这是若何运做的呢?我们之前领会的从动结构老是需要脚够多的束缚才能决定视图的大小和位置,可是现正在我们这儿跟本没有束缚。确定这是一个完整的结构?

  运转一个无效结构的法式是不明智的,由于从动结构不克不及准确的计较需要将视图放正在哪儿。要么视图的位置是不成预知的(束缚不敷),要么法式将会解体(束缚过多)。

  Xcode4设法包管老是有脚够多准确的束缚来建立一个无效的结构。倒霉的是,它经常会将你的束缚替代为你并不想要的。这会令人很沮丧,恰是由于这个缘由良多开辟者放弃了从动结构。

  Xcode5中,当你编纂Storyboard时它答应你有不完整的结构,但它也会指出哪些处所你还需要点窜。利用Interface Builder建立的从动结构驱动用户界面变得更风趣了,利用Xcode5也耗损更少的时间。

  若是你底子不供给任何束缚,Xcode从动分派一套默认的束缚,恰是我们所知的从动束缚。它会正在法式built的编译时间中去完成这些事,而不是设想时间。当你设想你的用户界面时,Xcode5中的从动结构为了不参取你的设想方式而勤奋工做,这这是我们喜好它的缘由。

  从动束缚为你的视图供给一个固定尺寸和位置。换句话说,视图老是具有跟你正在storyboard中看到的一样的坐标。这长短常便利的,由于这就意味着你能够大量的轻忽从动结构。你可认为那些具有充实束缚的控件不添加束缚,只为那些需要特殊法则的视图建立束缚。

  OK,让我们玩一玩束缚并看看他们能做什么。现正在,按钮是正在左上角,而且没有束缚。确认按钮跟两个拐角领导线对齐。

  这是Leading Space to Superview和Top Space to Superview选项。

  目前有两个束缚,一个是button和main view左边缘的Horizontal Space束缚,一个是button和main view上边缘的Vertical Space束缚。这个关系通过束缚描述起来即是:button老是位于其父视图左上角20点处。

  留意:这些其实都不长短常有用的束缚,由于他们有不异的从动束缚。若是你老是想你的button相对于父视图左上角,那么你还不如不供给任何束缚,让Xcode为你做这些。

  哇哦,这里发生了什么?正在Xcode4中这会粉碎旧的束缚并赋值一个基于蓝色领导线的新束缚,可是正在Xcode5中button保留了现存的束缚。但问题是button正在Interface Builder中的大小和位置再也不和从动结构但愿基于束缚的大小和位置相合适了。这叫做错位的视图。(misplaced view)

  当谈到从动结构,橙色代表坏的。Interface Builder绘制两个橙色方块:一个是虚线边框,一个是实线边框。虚线方块是按照从动结构显示视图的frame。实线方块是按照你正在屏幕上放置的视图的frame。这两个该当吻合的,可是这里并没有。

  1.你想让button从属于屏幕左边缘254点处吗?正在这种环境下你需要将现存的Horizontal Space束缚变大234点。这恰是橙色badge中+234的意义。

  删除Horizontal Space束缚。起首正在画布或Document Outline当选中,然后按键盘上的Delete键。

  留意此次Vertical Space束缚变橙色了。曲到现正在它都是蓝色的。那一个束缚并没有任何错误;它的意义是剩下的没有脚够的束缚决定button完整的位置。你任然需要正在X轴标的目的添加一个束缚。

  你可能会奇异,为什么Xcode不为X轴标的目的从动添加一个束缚。Xcode中的法则是:Xcode只为那些你没有设置任何束缚的对象建立从动束缚。一旦你添加一个束缚,你即是告诉Xcode你接管了这个视图。Xcode将不再添加任何从动束缚,并但愿你为这个视图添加需要的束缚。

  选中button,并选择Editor\PinTrailing Space to Superview.这迫使正在button左边缘和屏幕左边缘添加一个新的束缚。关系表达如下:button老是位于距离其父视图左上角20点处。

  当你放置一个对立于领导线的button(或者任何其他视图)并新建一个束缚时,你会获得一个按照HIG(Apples iOS Human Interface Guidelines document)定义的尺度大小的间隔束缚。对于边框来说,尺度大小空间是20点。

  因为视图错位,你获得了一个橙色虚线边框。我们假设这个button新位置简直是你想要的。建立完一个束缚后做一些细微的调整是很常见的,但这却会导致橙色方块呈现。一个点窜方式就是移除束缚并建立一个新的,但还有一个更简单的处理方案。

  Editor菜单上有一个Resolve Auto Layout Issues子菜单。从这个菜单中,选中Update Constraints。就我这个环境来说,这会告诉Interface Builder需要将束缚变大64点,像如许:

  很好,T-bars又变蓝了,结构是无效的。正在Document Outline中,你能够看到Horizontal Space束缚不再有一个尺度的间隔了:

  到目前为止你曾经测验考试过了Horizontal Space和Vertical Space束缚。还有一个center束缚。拖拽一个新的Button对象到画布底部核心,按照领导线无缺入位:

  为了连结button正在程度标的目的上一曲居中对齐于父视图,你需要添加一个Center X Alignment束缚。从Editor菜单选择Align\Horizontal Center in Container.这会添加一个很长的橙色线段:

  线之所以是橙色是由于你才仅仅指定了button的X轴,但Y轴并没有指定束缚。利用Editor\Pin菜单正在button和视图底部间添加一个Vertical Space束缚。看起来像如许:

  若是你不晓得缘由,这是Bottom Space to Superview选项。Vertical Space束缚使button远离视图底部(再一次利用尺度间隔)。

  这就是你表达的意义---这个button一直该当位于底部核心。留意,你底子不需要告诉Interface Builder按钮的坐标是什么,除非你想将它固定正在视图上。

  通过从动结构,你再也不需要担忧视图位置的切确坐标或视图大小了。相反,从动结构会按照你设置的束缚获得这两个参数。

  你能够正在button的Size inspector中看到这个典范转移,现正在有了很大的分歧:

  若是晦气用从动结构,输入值到X,Y,Width或Height字段将会改变选中视图的位置和大小。利用从动结构后,你仍然能够输入新值到这些字段,可是若是你曾经为视图设置了束缚,那这可能形成视图错位。你将不得不更新束缚来婚配新值。

  Xcode4用Horizontal Space代替Center X Alignment束缚,而且button上会发生一个新束缚强制它的宽度为100 points。然而,Xcode5说,若是你想让button宽度变为100 points,对我来说无所谓,可是你要晓得束缚并不是这么说的。

  正在这种环境下你但愿button是100点宽。对此有一个特殊的束缚类型:Fixed Width束缚。起首按一下Undo,如许button又居中了,T-bars也变蓝了。选中button并选择Editor\Pin\Width。这会正在button下面放置一个新T-bar:

  选中阿谁T-bar并正在Attributes inspector中改变Constant为100.不管button的title多大或多小,这城市强制button的宽老是100点。为了能更好的看清你能够给button设置一个布景色:

  取其他束缚分歧,正在button和它的父视图之间,Width束缚只会使用到button本身。你能够将这个认为是一个button本身和本身之间的束缚。

  你可能思疑为什么button之前没有Width束缚。从动结构是为何晓得button有多宽?

  工作是如许的:button本人是晓得本人有多宽。它按照本人的title text加上一些padding就行了。若是你为button设置一个布景图片,它也会考虑进去。

  这恰是我们熟悉的intrinsic content size。并不是所有的节制器都有这个,但大部门是(UILabel是一个例子)。若是一个视图能够计较本人抱负的大小,那么你就不需要为它出格指定Width或Height束缚了,你将会正在稍后看到更多相关内容。

  为了恢复button到最佳大小,起首我们需要移除Width束缚。然后选中button,并从Editor菜单当选择Size to Fit Content。如许就可以或许恢复button的固有的内容尺寸了。

  领导线不单呈现正在一个视图和它的父视图之间,并且也会呈现正在不异层级的视图之间。拖拽一个新的button到画布长进行演示。若是你将这个button拖近其他对象,这时他们的领导线将会起头彼此影响。

  这还有一些领导虚线。Interface Builder识别出这两个button能够通过分歧体例对齐顶部,核心以及基线会将这些显著的领导线改变成新的束缚。可是正在Xcode5中,若是你想让这两个button间有束缚,你需要本人建立。之前你曾经利用过Editor\Pin菜单来建立这两个视图间的束缚,可是还有一个更简单的体例。

  它是橙色的,这意味着这个button至多还需要另一个束缚。button的大小是晓得的(利用intrinsic content size),而且还有一个button正在X轴上的束缚。只剩下Y轴没有束缚了。

  这种缺失束缚的环境是很容易确定的,可是更复杂的设想可能就没这么较着了。幸运的是,你不再需要敏思苦想,Xcode曾经记实并能够切当的告诉你贫乏了什么。

  正在Document Outline中会有一个红色的小箭头,就正在View Controller Scene后面。点击这个箭头便会看到所有Auto Layout问题:

  此次弹出菜单有分歧的选项了。此次菜单的选项是基于上下文情况的你正在哪些视图间拖拽以及鼠标挪动的标的目的。选择Bottom Space to Bottom Layout。

  现正在新button有一个位于屏幕底部的Vertical Space,也有一个跟其他button相联系关系的Horizontal Space。虽然空间很是小(只要8 points),T-bar可能不大容易看到,但它就正在那里。

  当你选中一个束缚,它会高亮本人所属的节制器。这个出格的束缚位于两个button之间。这个束缚表达了:“不管第一个button正在哪儿或多大,第二个button老是呈现正在第一个button的左边”。

  选中黄色布景的button并输入较长的label,好比:“A longer label”。输入完成后,button会为新的text改变大小,而且另一个button会移开。

  为了更好的试探这是若何工做的,多练一些吧。拖拽另一个button到画布上并放到黄色button的上方,他们会垂曲标的目的对齐到位(不要试着让两个button的左边缘对齐):

  由于你将两个button对齐正在一路,现正在他们之间存正在HIG保举的8 points间隔。按住Ctrl正在两个button之间拖拽将这变为一个束缚。从弹出菜单当选中Vertical Spacing。

  Note:“HIG”是“iOS Human Interface Guidelines”的简称,包含Apple保举的优良的用户界面设想。任何iOS开辟者都有需要读一读这个规范。HIG注释了哪些UI元素适合正在什么环境下利用,以及最佳利用体例。你能够正在这里找到。(

  然而你并没有被限制正在controls间的尺度间隔。束缚是成熟的对象,就像视图一样,因而你能够改变它们的属性。

  选中两个button之间的Vertical Space束缚。你能够正在画布上点击T-bar,虽然这有点麻烦。目前最简单的法子就是正在Document Outline里面选择束缚。一旦你选中束缚,再切换到Attributes inspector:

  正在Constant字段里输入40改变束缚大小。现正在两个button更进一步的分隔了,可是他们任然是毗连正在一路的:

  button必然会连结他们垂曲标的目的的陈列,可是程度标的目的就不了!缘由很较着:绿色button还没有X轴标的目的的束缚。

  为绿色button添加一个到屏幕左边缘的Horizontal Space并不克不及处理问题。如许的束缚只会让绿色按钮老是连结正在统一个X轴坐标,即即是正在横屏模式下。这看起来感受不大对,所以你需要表述如许一个目标:

  “黄色button会一曲程度居中,蓝色button左边缘会一曲跟黄色button左边缘对齐。”

  你曾经为第一种环境建立了一个束缚,可是第二个并没有。Interface Builder为对齐显示了领导线,如许你就能够将上面button一曲拖拽到跟黄色左边缘对齐的位置:

  若是你也正在垂曲标的目的上拖拽button,这时button框架和Vertical Space束缚之间就不克不及达到准确的距离了。你正在T-bar大将会看到橙色的badge:

  最终,按住Ctrl正在两个button间拖拽,从弹出菜单当选择Left。这会建立一个束缚:“两个视图的左边缘一曲对齐”。换句话说,这两个button一曲会有不异的X轴坐标。这时T-bars变成蓝色了:

  现正在你曾经对从动结构进行了第一次测验考试,感受怎样样?这可能需要一些时间习惯,可是它能让你的工做愈加简单,也会让你的app愈加矫捷。

  吧,你将会继续正在Interface Builder中利用button进一步理解Auto Layout供给的多种可能性,以及你可能碰到的问题。

传奇国际娱乐网鼎力打造业界最为诚信的良心娱乐巨作,在传奇国际娱乐平台您不单能够享受娱乐为您带来的乐趣,您更能够感受传奇国际娱乐官网为您提供至尊般的娱乐服务!!

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
精彩导读