Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

使用

配置布局

网格布局模式,如下 5 * 9,使用 null 断开 左上,右上,左下,右下 四个区域

[
[{"demo1":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"demo2":{}}],
[{"try":{}},	{"link":{}},	{"null":{}},	{"null":{}},	{"series":{}}],
[{"series":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"sport":{}}],
[{"ad":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"ad":{}}],
[{"null":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"discuss":{}}],
[{"null":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"camera":{}}],
[{"null":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"null":{}}],
[{"chat":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"ad2":{}}],
[{"ad3":{}},	{"null":{}},	{"null":{}},	{"null":{}},	{"zan":{}}]
]

控制

// 引用
#import "UIView+QHPileView.h"

// 初始化
struct QHPileViewMake pileMake;
pileMake.topV = self.viewTop;
pileMake.bottomV = self.viewBottom;
    
UIEdgeInsets edge = UIEdgeInsetsMake(20, 20, 20, 20);
    
self.pileMan = [[QHPileViewMan alloc] initWith:self.view make:pileMake 
edge:edge];

// 设置 Layout & Pile
// 1
BOOL ret = [view cqh_makePile:self.pileMan layout:layout pile:key];
if (!ret) {
    NSLog(@"cqh_makePile error");
}
// 2
view.cqhPileMan = self.pileMan;
view.cqhPileKey = key;
view.cqhLayoutKey = [NSString stringWithFormat:@"%lu", (unsigned long)layout];

// 提前判断 layout 是否符合配置
if (![self.pileMan check:layoutKey p:view.cqhPileKey]) {
    return;
}

// 显示
if ([view cqh_directCheckPile]) {
    BOOL ret = NO;
    view.cqh_addPile(&ret).cqh_showPile(bShow).cqh_updateSize(CGSizeMake(_slider.value * 2, _slider.value)).hidden = !bShow;
}

// 隐藏
view.cqh_showPile(NO).cqh_removePile();

注意

view 是否显示需要自己控制

view.hidden = !ret;

开发思考:

锚点作为占位,外部显示的view可以给予锚点进行 (x, y) 进行定位,然后撑大 size 和 marge

需解决动态化,即灵活添加,显示,隐藏,适用横竖屏的不同布局等,相当于更改锚点的坐标即可

到达集中处理和解耦

1、

类似 android,使用 xml 将所有锚点打桩,然后需要添加的view通过 xml 对应的 id 获取锚点进行布局

缺点:需要提前写好锚点,再添加子view,并且不同布局需要不同xml 优点:xml 可以动态下发,也容易修改

2、

实时创建锚点,添加view 时再创建,将锚点进行排队,插入后更新前后锚点的约束,及关联新锚点,

缺点:排序需要提前写好,否则无法确定顺序和插入的位置,这样就有耦合idx,对idx就很乱 优点:即用即给

需要达到:

可视化:工具可视化布局 配置化:下发配置的文件 低耦合:view根据配置,自相对锚点布局 高性能:?

About

布局 layout

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages