自己使用SDAutolayout的简单心得 包含2个库类
UIView+SDAutoLayout.h
UITableView+SDAutoTableViewCellHeight.h
前者主要针对View,label ,button等的自动布局 后者主要针对应该是cell的自动布局
UIView+SDAutoLayout.h
控件之间的间距 有2个比较重要的参数
SpaceToView 设置距离其它view的间距,参数为“(View, CGFloat)” 上下左右
EqualToView 设置和某个参照view的边距相同 参数为“(View)” 上下左右中心点(x,y)
#pragma mark - UIView 高度、宽度自适应相关方法
/** 设置Cell的高度自适应,也可用于设置普通view内容高度自适应 */
- (void)setupAutoHeightWithBottomView:(UIView *)bottomView bottomMargin:(CGFloat)bottomMargin;
/** 用于设置普通view内容宽度自适应 */
- (void)setupAutoWidthWithRightView:(UIView *)rightView rightMargin:(CGFloat)rightMargin;
/** 设置等宽子view(子view需要在同一水平方向) */
@property (nonatomic, strong) NSArray *sd_equalWidthSubviews;
>cell高度自适应的方法
// cell布局设置好之后调用此方法就可以实现高度自适应(注意:如果用高度自适应则不要再以cell的底边为参照去布局其子view)
[cell setupAutoHeightWithBottomView:_view4 bottomMargin:10];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// 2.1 注册模型cell
[self.tableView startAutoCellHeightWithCellClass:“cell类名” contentViewWidth:“contentview宽度”];
return_rowCount;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 2.2 根据模型取得cell高度
return[self.tableView cellHeightForIndexPath:indexPath model:“model” keyPath:@"model属性名"];
}
// 推荐使用此普通简化版方法(一步设置搞定高度自适应,性能好,易用性好)
return [self.tableView cellHeightForIndexPath:indexPath model:model keyPath:@"model" cellClass:currentClass contentViewWidth:[self cellContentViewWith]];
网友评论