/// 一行代码对视图进行约束适配
view.whc_LeftSpace(10).whc_TopSpace(10).whc_RightSpaceToView(10,view1).whc_Height(100);
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationItem.title = @"一行代码对Xib上所有控件进行智能布局";
/**
* 智能识别xib上所有UI控件之间约束关系
* 来自动给xib上所有控件进行自动添加相
* 应约束关系
*/
/// 对xib上所有控件横向和垂直进行智能布局
[self.view whc_AutoXibLayout];
}
/// 自动拉伸宽度与父视图右边间隙为10px, 高度为30px
[_whcView whc_FrameAutoWidth:WHCWidthAutoRectMake(10, 0, 10, 30)];
/// 自动拉伸高度与父视图底部间隙为10px 宽度为100px
[_whcView whc_FrameAutoHeight:WHCHeightAutoRectMake(10, 0, 100, 10)];
/// 自动拉伸宽度和高度与父视图右边底部间隙分别为10px
[_whcView whc_FrameAuto:WHCAutoRectMake(10, 0, 10, 10)];
/// 普通对视图添加约束方式
[view1 whc_LeftSpace:10];
[view1 whc_TopSpace:74];
[view1 whc_WidthEqualView:view2];
[view1 whc_Height:150];
[view2 whc_LeftSpace:10 toView:view1];
[view2 whc_TopSpace:74];
[view2 whc_RightSpace:10];
[view2 whc_HeightEqualView:view1];
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
/// 仅需调用该方法即可自动计算cell高度
return [DemoVC2Cell whc_CellHeightForIndexPath:indexPath tableView:tableView];
}
// 创建容器视图
stackView = [WHC_StackView new];
// 对容器视图1进行约束布局
[stackView whc_FrameAutoWidth:WHCWidthAutoRectMake(0, 64, 0, 150)];
// 对容器视图1配置
// 容器子视图上下左右间隙
stackView.whc_Edge = UIEdgeInsetsMake(10, 10, 10, 10);
// 自动横向布局设置
stackView.whc_Orientation = Horizontal;
// 容器子视图之间间隙
stackView.whc_Space = 10;
// 开始对容器进行自动布局
// 添加子元素视图
[stackView addSubview:lable1];
[stackView addSubview:lable2];
[stackView addSubview:lable3];
[stackView addSubview:lable4];
// 设置容器子视图宽度拉伸权重
label1.whc_WidthWeight = 2
// 容器开始布局
[stackView whc_StartLayout];
// 创建容器视图
stackView = [WHC_StackView new];
// 对容器视图1进行约束布局
[stackView whc_FrameAutoWidth:WHCWidthAutoRectMake(0, 64, 0, 150)];
// 对容器视图1配置
// 容器子视图上下左右间隙
stackView.whc_Edge = UIEdgeInsetsMake(10, 10, 10, 10);
// 自动横向垂直混合布局设置
stackView.whc_Orientation = All;
// 容器子视图之间间隙
stackView.whc_Space = 10;
// 开始对容器进行自动布局
// 添加子元素视图
[stackView addSubview:lable1];
[stackView addSubview:lable2];
[stackView addSubview:lable3];
[stackView addSubview:lable4];
[stackView addSubview:lable5];
// 设置容器子视图宽度拉伸权重
label1.whc_WidthWeight = 2;
label2.whc_HeightWeight = 2;
// 容器开始布局
[stackView whc_StartLayout];