前言:
IOS的界面,分为:状态栏、导航栏、主界面、底部状态栏。
本篇讲述主界面的相对同级UIView布局,其它三个的操作,在其它文章独立讲述。
1、相对同级UIView布局的基本语法:
基本方法定义:
/当前UI将布局于指定UI的右侧 -(UIView*)onRight:(id)uiOrName; -(UIView*)onRight:(id)uiOrName x:(CGFloat)x; -(UIView*)onRight:(id)uiOrName x:(CGFloat)x y:(CGFloat)y; //当前UI将布局于指定UI的左侧 -(UIView*)onLeft:(id)uiOrName; -(UIView*)onLeft:(id)uiOrName x:(CGFloat)x; -(UIView*)onLeft:(id)uiOrName x:(CGFloat)x y:(CGFloat)y; //当前UI将布局于指定UI的上方 -(UIView*)onTop:(id)uiOrName; -(UIView*)onTop:(id)uiOrName y:(CGFloat)y; -(UIView*)onTop:(id)uiOrName y:(CGFloat)y x:(CGFloat)x; //当前UI将布局于指定UI的下方 -(UIView *)onBottom:(id)uiOrName; -(UIView *)onBottom:(id)uiOrName y:(CGFloat)y; -(UIView *)onBottom:(id)uiOrName y:(CGFloat)y x:(CGFloat)x;
2、布局示例:
通常界面上第一个UI是用相对布局,后续的UIView,都可以相对于第一个UI进行同级布局。
比如第一个Logo,用了相对布局:
[[[[sagit addImageView:@"logo" img:@"logo"] width:170 height:170] relate:Top v:200] toCenter:X];
接下来的App名称的文字布局,则可以用同级间的相对布局。
App名字,是个label,在logo的底部,因此可以用onBotton方法:
[[[[sagit addLabel:nil text:AppName font:48] width:160 height:44] onBottom:@"logo" y:50]toCenter:X];
onBotton可以接收UI的name,也可以传入UIView,而框架定义了一个宏:STPreView,代表上一个UI,因此,通用写法是这样的:
[[[[sagit addLabel:nil text:AppName font:48] width:160 height:44] onBottom:STPreView y:50] toCenter:X];
通过框架提供的一些宏定义,写法可以更简单快捷一些。
其它方法理解和使用是一样的。
3、同级布局和相对布局一起用:
通常使用同级布局后,如果位置还不能确定,还可以再继续使用relate相对布局。
如:
[[[[sagit addUIView:nil] width:STScreenWidthPx] onBottom:STPreView y:20] relate:Bottom v:0];
添加了一个UI,宽度全屏、在上一个UI底部20px,高度自适应到底部。
4、方法的第二个参数说明:
一般使用同级参数方法时,只使用一个参数,第二个参数不指定时,即相对上一个控件对齐(左对齐、顶部对齐)。
框架一共就两种相对布局方法,本文就介绍到这里了。
版权声明:本文原创发表于 博客园,作者为 路过秋天 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。 |
个人微信公众号![]() |
Donation(扫码支持作者):支付宝:![]() |
Donation(扫码支持作者):微信:![]() |
![]() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
2010-08-12 CYQ.Data 轻量数据层之路 开篇介绍(一)