我创建了一个自定义UITableViewCell,它使用以下initWithStyle显示水平访问中的动态按钮数
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
emailBtn = [UIButton newAutoLayoutView];
[emailBtn setImage:[UIImage imageNamed:@"emailBtn"] forState:UIControlStateNormal];
[emailBtn setImage:[UIImage imageNamed:@"emailBtn"] forState:UIControlStateSelected];
[emailBtn addTarget:self action:@selector(emailBtnPressed:) forControlEvents:UIControlEventTouchUpInside];
facebookBtn = [UIButton newAutoLayoutView];
[facebookBtn setImage:[UIImage imageNamed:@"fbBtn"] forState:UIControlStateNormal];
[facebookBtn setImage:[UIImage imageNamed:@"fbBtn"] forState:UIControlStateSelected];
[facebookBtn addTarget:self action:@selector(facebookBtnPressed:) forControlEvents:UIControlEventTouchUpInside];
twitterBtn = [UIButton newAutoLayoutView];
[twitterBtn setImage:[UIImage imageNamed:@"twBtn"] forState:UIControlStateNormal];
[twitterBtn setImage:[UIImage imageNamed:@"twBtn"] forState:UIControlStateSelected];
[twitterBtn addTarget:self action:@selector(twitterBtnPressed:) forControlEvents:UIControlEventTouchUpInside];
linkedinBtn = [UIButton newAutoLayoutView];
[linkedinBtn setImage:[UIImage imageNamed:@"linkedInBtn"] forState:UIControlStateNormal];
[linkedinBtn setImage:[UIImage imageNamed:@"linkedInBtn"] forState:UIControlStateSelected];
[linkedinBtn addTarget:self action:@selector(linkedinBtnPressed:) forControlEvents:UIControlEventTouchUpInside];
self.contentView.backgroundColor = [UIColor orangeColor];
[self.contentView addSubview:emailBtn];
[self.contentView addSubview:facebookBtn];
[self.contentView addSubview:twitterBtn];
[self.contentView addSubview:linkedinBtn];
self.btnsArray = @[emailBtn,facebookBtn,twitterBtn,linkedinBtn];
[self setNeedsUpdateConstraints]; // bootstrap Auto Layout
}
return self;
}
效果很好并且它在水平访问中显示4个按钮对齐,我面临的问题是我需要根据从API检索的数据使这个按钮动态化,例如,如果没有Facebook链接,Cell应该只显示3个按钮....
的问题[self setNeedsUpdateConstraints]; // bootstrap Auto Layout
在配置单元格数据以确定按钮及其链接的真实数量之前,在初始化单元格时调用。
对于目前的情况有没有建议?