在自定义UITableViewCell中设置UIButton的contentMode显示无效

时间:2016-02-25 18:58:42

标签: ios objective-c uitableview uibutton

我正在for key, group in itertools.groupby(...): next(group) for val in group: ... 创建mu自定义UITableViewCells,如下所示:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

使用InterfaceBuilder我已将此单元格xib中包含的两个按钮的内容模式设置为NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCell" owner:self options:nil]; CustomTableViewCell *cell = [topLevelObjects objectAtIndex:0]; ,但它们的显示方式不能保留纵横比。所以我在这个类中添加了以下代码:

AspectFit

此功能甚至没有运行。我也试过继承- (id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { NSLog(@"running initwithstyle"); self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { [[deleteButton imageView] setContentMode:UIViewContentModeScaleAspectFit]; [[saveButton imageView] setContentMode:UIViewContentModeScaleAspectFit]; } return self; } ,但显然也没有被调用。我应该将什么函数子类化,以便我可以在我的Xib中设置按钮的内容模式,以及为什么在Xib中设置内容模式没有效果?

1 个答案:

答案 0 :(得分:0)

尝试将代码放在-(void)awakeFromNib中。它未在initWithStyle:reuseIdentifier:中执行的原因是因为这不是您创建自定义单元格的方式。

我认为在xib中设置内容模式无效的原因是因为这是在按钮而不是在按钮的图像视图上设置内容模式。