Adaptive Layout初阶

本文通过创建一个天气小应用程序,介绍了如何使用AdaptiveLayout和AutoLayout在不同iOS设备上实现一致的用户界面布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Adaptive Layout初阶这一部分,我们写一个关于weather的小app,一句代码都不用写(这么好-_-|||),Let's begin!

1 - Universal storyboards

Universal storyboards好处就不多说了(一样的storyboard,跑遍各种iOS设备),先建立一个工程尝试下下:

打开Xcode(这里用的时Xcode 6),选Create a new Xcode project:

选iOS\Application\Single View Application,再点Next:

给你的Product取个名字叫AdaptiveWeather,语言选Swift,Device设成Universal:

打开工程,就能在Project Inspector中看到你的Main.storyboard:

现如今的Main.storyboard已经是one for all的神器了,不管iOS设备屏幕尺寸,你就需要这么一个Main.storyboard。打开这storyboard,一个孤零零的view controller映入眼帘:

从Object Library里,选Image View拉到view controller的convas里面。并且在Size Inspector里,把X position设成150,Y position设成20,Width为300,Height为265:





接着再从Object Library里拽一个View放到刚刚加入的image view下面,在Size Inspector里,把X position设成150,Y position设成315,Width为300,Height为265:


选择刚刚加入的View,打开Identity Inspector,在Document pane下地Label中输入TextContainer,并在Attributes Inspector中把它的background color设置成Red:55,Green:128,Blue:186.

最后选择这个view controller的view,并在Attributes Inspector中把它的background color设置成Red:74,Green:171,Blue:247:

然后,来给这两个views加点layout constraints。

(1)Adding layout constraints

选image view,点击下auto layout工具栏里的Align,然后把Horizontal Center in Container给check上,并且一定一定把它的值设成0:

接着点Align右边的Pin,给它加一个top spacing to nearest neighbor constant,值为0:

接着,为了确定image view和下放的text container的间距,从image view开始Crtl+drag到下面的container view:

在紧接着出现的constraint context menu中,选择Vertical Spacing:

选择image view,打开Size Inspector:

点击Bottom Space To:TextContainer后面的Edit,把Constant设成20:

选择TextContainer view,然后点Pin,先勾选掉Constrain to margins,然后在Spacing to nearest neighbor中,将left,right,bottom都设成0,最后点Add 3 Constraints:

现在得到这样一个东西:


还没完事儿,接下来加图。

在Project Navigator里打开Images.xcassets(不要说你不知道在哪),点击左下角+号,选择New Image Set:


点击下新建Image Set左上角的Image字样,改成cloud:



把图片素材拖放到相应位置(你可能没有素材……)。

回到Main.storyboard,选择image view,切换到Attributes Inspector,在image后的输入框中输入cloud,并在View\Mode的下拉列表中选择Aspect Fit:


橘黄色的constraints说明还有活要干,所以,首先选择view controller的view,然后点击底部的Resolve Auto Layout Issues(位于Pin右边),点击All Views\Update Frames,Xcode帮你全部自动搞定,厉害了:

(2)The Preview Assistant Editor

Xcode中得全新Preview Assistant Editor貌似挺给力,现在来尝试下下。

打开Main.storyboard,点击菜单上的Assistant Editor:

接下来……但愿你能找到:

点击Main.storyboard(Preview):

点击最下方的旋转按钮,转转更舒爽~:

这个云貌似太大了(其实也还好),改一下。

从image view上Ctrl-drag到view controller的view上,这样进来一个新的constraint,在冒出来的菜单列表中选择Equal Heights:



然后就冒出来一堆红呼呼的constants:



选在这多白云右边那条红色的constraint,打开Attributes Inspector,设置成如下值:

云朵就这么被搞定了,红呼呼消失:

(3)Adding content to the TextContainer(To be continued)

拽两个label到TextContainer上:

选中第一个label,调整Align和Pin的设置如下:

接着选中Attributes Inspector,设置Text为Guangzhou,颜色为White,字体为Helvetica Nenu,Thin,Size为150。

第二个Label的Align值设置的与第一个Label相同。Pin中设置Bottom space to nearest neighbor为10,Text为26C,颜色为White,字体为Helvetica Nenu,Thin,Size为250。

最后Resolve Auto Layout Issues,点击All Views\Update Frames,最终效果如下:

这字体,明显大了……

不过,夜深了,睡了……













电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID标识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化学成分、容量、续航里程、充电标准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分类字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列类型描述示例 Vehicle_ID整数每个车辆记录的唯一标识符。1 制造商分类汽车品牌或OEM。特斯拉 型号类别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_类型分类使用的电池化学/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池标称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电类型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色类别主要外观颜色或饰面。午夜黑 制造国_制造类别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
内容概要:本文详细介绍了IEEE论文《Predefined-Time Sensorless Admittance Tracking Control for Teleoperation Systems With Error Constraint and Personalized Compliant Performance》的复现与分析。论文提出了一种预定义时间的无传感器导纳跟踪控制方案,适用于存在模型不确定性的遥操作系统。该方案通过具有可调刚度参数的导纳结构和预定义时间观测器(PTO),结合非奇异预定义时间终端滑模流形和预定义时间性能函数,实现了快速准确的导纳轨迹跟踪,并确保误差约束。文中详细展示了系统参数定义、EMG信号处理、预定义时间观测器、预定义时间控制器、可调刚度导纳模型及主仿真系统的代码实现。此外,还增加了动态刚度调节器、改进的广义动量观测器和安全约束模块,以增强系统的鲁棒性和安全性。 适合人群:具备一定自动化控制理论基础和编程能力的研究人员、工程师,尤其是从事机器人遥操作、人机交互等领域工作的专业人士。 使用场景及目标:①理解预定义时间控制理论及其在遥操作系统中的应用;②掌握无传感器力观测技术,减少系统复杂度;③学习如何利用肌电信号实现个性化顺应性能调整;④探索如何在保证误差约束的前提下提高系统的响应速度和精度。 阅读建议:本文内容涉及较多的数学推导和技术细节,建议读者先熟悉基本的控制理论和Python编程,重点理解各个模块的功能和相互关系。同时,可以通过运行提供的代码示例,加深对理论概念的理解,并根据自身需求调整参数进行实验验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值