iOS上的视图结构历来都比较庞杂。在iPad和分歧尺寸的iPhone降生之前,开发者习气硬编码视图结构。跟着分歧尺寸的iOS装备呈现,这类方法已然不成取。为了处理这个问题,Apple供给了AutoLayout,它应用基于束缚的结构系统依据装备规格静态调剂你的用户界面。AutoLayout处理了非常多问题,可是它不容易于把握、不轻易适应变更和调剂起来耗时耗力。举个例子,假如我想在两个控件中间添加别的一个,那末我必需重写非常多束缚来包管它准确的拔出。
那末我们能既容易又可以静态的结构视图吗?我最爱好的iOS9的变更就是,它带来了一个全新的控件UIStackView,UIStackView可以简化我们对视图结构的处置,它不像我们之前运用过的其它控件。在这篇博客,我将会详实的引见怎么运用UIStackView来构建静态、美丽的用户界面。
Apple留意到了我们运用AutoLayout苦楚,因而供给了一个Tools使我们的生涯愈加轻松。 UIStackView经过设置一些容易的属性在运转时创立束缚来消弭我们手动创立这些束缚的苦楚,这意味着我们可以向UIStackView经过容易的拖拽来添加控件,它会主动为我们生成束缚。它乃至还答应我们在运转时添加和删除视图(你需求设置它暗藏)。
不需求像AutoLayout那样设置装备摆设束缚,取而代之的是你需求设置一些很有描绘性的属性,比方坐标(Axis)、距离(Spacing)、对齐(Alignment)和散布(Distribution )等。天然的,你可以在属性设置面板上来设置装备摆设,如许你就能够经过鼠标轻松的制造出在一切iOS装备上都还不错的用户界面了。
UIStackView是我们Tools库里的一个很好的弥补,同时它也是不需求衬着的UIView的子类。正由于它不做衬着,你不克不及够设置它的布景色和重构它的Draw办法。相反,它是用来协助你结构子视图的控件。另外一个限制是,它与低于iOS9版本的装备不兼容,也就是说假如你需求向前兼容,还必需继续设置装备摆设束缚(记得在Xamarin Insights上查一下用户数据,看有几多用户依然运用iOS9之前版本的系统)。
UIStackView有一个添加和删除子视图的API,它可让你不必去过量思索你的视图结构。在stack view中的任何视图都需求用ArrangedSubviews属性来添加,而不是SubView。
//Add View MyUIStackView.AddArrangedSubview(myView); //Remove view MyUIStackView.RemoveArrangedSubview(myView);
容易扩大一下,应用下面的办法,你可以轻松的为添加和删除视图加入动画后果。
// Animate stack UIView.Animate(0.25, ()=>{ // Adjust stack view MyUIStackView.LayoutIfNeeded(); });
在我们的文档网站上,有非常多不错的文档来协助你运用UIStackViews。
UIStackView曾经集成在最新版本Xamarin Studio和Visual Studio的Xamarin.iOS中。假如你目的的最低版本是iOS9以上,那末,你就能够应用UIStackView来构建在一切iOS装备上都不错的用户界面了。
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务