我正在尝试将autolayout用于我正在创建的uitableviewcell子类,我将非常感谢有关放置布局约束创建代码的方法的一些建议.我一直在搜索并找到有关在viewDidLoad方法中添加子视图后添加约束的所有信息.据我所知,viewDidLoad不是uitableviewcell子类的选项.
我正在使用界面构建器来创建自定义单元格并在我的代码中动态分配它.没有什么特别的......我将uitableviewcell子类化,以便我可以向单元格添加自定义uiview.再一次,没有什么特别令人震惊的......当我尝试根据我添加到界面构建器中的单元格的标签来定位我的自定义uiview时,我遇到了困难.
这是创建自定义uiview并将其添加到单元格内容视图的代码:
- (id)initWithCoder:(NSCoder *)decoder
{
if ((self = [super initWithCoder:decoder]))
{
[self initSelf];
}
return self;
}
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]))
{
[self initSelf];
}
return self;
}
- (void) initSelf
{
// Initialization code
_badgeLabel = @"";
if (!_customBadge)
{
_customBadge = [CustomBadge customBadgeWithString:self.badgeLabel];
}
// hide the badge until needed
self.customBadge.hidden = YES;
// add badge to the cell view hierarchy
[self.customBadge setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.customBadge setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
[self.customBadge setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisVertical]; …
Run Code Online (Sandbox Code Playgroud)