前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 使用flexBox

iOS 使用flexBox

作者头像
用户2814378
发布2022-11-07 15:14:26
1.5K0
发布2022-11-07 15:14:26
举报
文章被收录于专栏:高科技宣传

#flex布局

Yogakit

https://github.com/facebook/yoga/tree/master/YogaKit

Yoga is a cross-platform layout engine which implements Flexbox.

YogaKit is used for iOS.

Yogakit Properties

容器默认存在两根轴:主轴和交叉轴 主轴方向由Flex Direction决定,Flex Direction = row 代表水平方向为主轴,Flex Direction = column 代表 垂直方向为交叉轴。

Flex Direction

1.row: 水平正向排列

2.row-reverse:水平逆向排列

3.column:垂直正向排列

4.column-reverse:垂直逆向排列

Flex Wrap

是否换行

1.no wrap :不换行,此时如果控件超出空间,则根据FlexShrink来计算缩放.

2.wrap : 控件超出空间是换行。

Justify Content

主轴上的对齐方式

1.flex start:起点对齐

2.center:中间对齐

3.flex end:终点对齐

4.space between:控件间等距对齐

5.space around:控件两侧边距相同, 边距 = 控件间距 / 2

6.space evenly:所有间距相同,边距 = 控件间距

Align Items

交叉轴上的对齐方式 比Justify Content多一个stretch选项,stretch是指在垂直轴上拉伸,前提是垂直轴方向的长度值为auto

Align Self

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性

演示

Align Content

一行:Align Items

多行:Align Content

Align Content 属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

Flex Basis,Grow,and Shrink

1.basis:固定主轴方向的长度,优先级高于width或height

2.grow:空间大,瓜分剩余空间,值越大,说明瓜分的剩余空间越大

3.shrink:空间不够,控件缩小规则,值越大,说明该控件压缩的空间越大

演示

Complex Layout

重叠布局

position 有两个值:.relative 相对定位 和 .absolute 绝对定位, 默认为相对定位;

绝对定位使得该视图脱离布局流,坐标系为父视图。

代码语言:javascript
复制
	[YellowView configureLayoutWithBlock:^(YGLayout * _Nonnull layout) {
	            layout.isEnabled = YES;
	            layout.flexDirection = YGFlexDirectionColumn;
	            layout.justifyContent =  YGJustifyFlexStart;
	            layout.alignItems     =  YGAlignCenter;
	}];
	
	[RedView configureLayoutWithBlock:^(YGLayout * _Nonnull layout) {
	            layout.isEnabled = YES;
	}];
	
	[YellowView addSubView: RedView];
	
	
	[BlueView configureLayoutWithBlock:^(YGLayout * _Nonnull layout) {
	            layout.isEnabled = YES;
	            layout.position = YGPositionTypeAbsolute;
	}];
	
	[YellowView addSubView: BlueView];

Performance

frame布局

yogalayout布局

结论

frame布局性能还是最好的,均值在1.06ms, yogalayout均值在1.20ms左右,但yogalayout布局编写简单,灵活性强(空间过大或不够的情况下),省去了开发者的计算逻辑,开发者只需要关注边距,布局方式,控件大小即可。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Yogakit
  • Yogakit Properties
    • Flex Direction
      • Flex Wrap
        • Justify Content
          • Align Items
            • Align Self
              • Align Content
                • Flex Basis,Grow,and Shrink
                • Complex Layout
                  • 重叠布局
                  • Performance
                    • frame布局
                      • yogalayout布局
                        • 结论
                          • frame布局性能还是最好的,均值在1.06ms, yogalayout均值在1.20ms左右,但yogalayout布局编写简单,灵活性强(空间过大或不够的情况下),省去了开发者的计算逻辑,开发者只需要关注边距,布局方式,控件大小即可。
                      相关产品与服务
                      容器服务
                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档