随笔 - 714  文章 - 0  评论 - 12812  阅读 - 301万 

前言:

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、方法的第二个参数说明:

一般使用同级参数方法时,只使用一个参数,第二个参数不指定时,即相对上一个控件对齐(左对齐、顶部对齐)。

框架一共就两种相对布局方法,本文就介绍到这里了。

posted on   路过秋天  阅读(222)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题: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 轻量数据层之路 开篇介绍(一)
路过秋天
点击右上角即可分享
微信分享提示