我有一个UITableViewCell
,我正在添加五个UIButtons
。我以编程方式创建按钮,添加动作和图像。按钮放置在正确的位置,动作正常,标签已设置,但它们是清晰的。图像没有显示。
我正在使用它来创建其中一个按钮并将它们添加到单元格中,此代码位于tableView:cellForRowAtIndexPath:
:
if ([[self.compCompletion objectForKey:@"Key" isEqualToString:@"YES"]) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(11, 6, 21, 21);
button.tag = 1;
[button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:@"Comp-Completed.png"] forState:UIControlStateNormal];
[button setContentMode:UIViewContentModeScaleToFill];
[cell.contentView addSubview:button];
}
else {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(11, 6, 21, 21);
button.tag = 1;
[button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:@"Comp-Uncompleted.png"] forState:UIControlStateNormal];
[button setContentMode:UIViewContentModeScaleToFill];
[cell.contentView addSubview:button];
}
我尝试将[button setEnabled:YES];
,[button setHidden:NO];
和[button setNeedsDislpay];
添加到流程中,但没有运气。如何让按钮显示图像?
修改
我的图片存在,UIImage
已创建,我可以将UIImage
拉出UIButton
并将其保存到文件中。我已经浏览了控制外观的UIButton
的每个属性并更改了它们。我还尝试了UIButton
类UIButtonTypeRoundedRect
和UIButtonTypeAddContact
的空UITableViewCell
。我现在相信这与UIButtons
不喜欢UIButton
有关,或者我如何将UITableViewCell
添加到{{1}}。
答案 0 :(得分:7)
确保在复制文件时已将项目检查为目标成员资格。它帮助我解决了这个问题。
答案 1 :(得分:1)
我的错误是将图像拖动到一个images.xcassets文件中,该文件是pod的一部分,而不是主项目。它在故事板中显示得很好,但没有出现在应用程序中。
答案 2 :(得分:1)
万一有人还在寻找答案:将映像保存在asset.xcassets中之后,我需要将其包含在Target的“构建阶段”部分的“复制捆绑包资源”区域中。然后,我还必须设置一个透明的颜色,以免被遮盖。
项目->目标->构建阶段->复制捆绑软件资源->“ +”->“添加其他”->在查找器中选择图像。
答案 3 :(得分:0)
它能肯定找到图像吗?它们是否包含在项目中?
只是为了测试,尝试使用你已经在其他地方使用过的图像而不是Comp-Completed.png - 如果有效,你知道问题在于它找不到该文件。
答案 4 :(得分:0)
检查您的图像是否存在并已导入。此外,它在我看来,除了图像名称,代码是相同的。有点清洁:
UIImage *buttonImage;
if ([[self.compCompletion objectForKey:@"Key" isEqualToString:@"YES"]) {
buttonImage = [UIImage imageNamed:@"Comp-Completed.png"];
} else {
buttonImage = [UIImage imageNamed:@"Comp-Uncompleted.png"];
}
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(11, 6, 21, 21);
button.tag = 1;
[button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:buttonImage] forState:UIControlStateNormal];
[button setContentMode:UIViewContentModeScaleToFill];
[cell.contentView addSubview:button];
答案 5 :(得分:0)
UIImage * normalImage = [UIImage imageNamed:@"Comp-Uncompleted.png"];
UIImage * selectedImage = [UIImage imageNamed:@"Comp-Completed.png"];
UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
button.frame = CGRectMake(11, 6, 21, 21);
button.tag = 1;
[button addTarget:self action:@selector(changeCompStatus:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:normalImage forState:UIControlStateNormal];
[button setImage:selectedImage forState:UIControlStateSelected];
[cell.contentView addSubview:button];
if ([[self.compCompletion objectForKey:@"Key" isEqualToString:@"YES"]) {
button.selected = YES;
} else {
button.selected = NO;
}
答案 6 :(得分:0)
我知道这是一篇旧帖子,但我遇到了同样的问题,原因是isHidden
和isUserInteractionEnabled
设置为隐藏按钮的值。
将它们设置为YES
或NO
时必须小心。