【问题标题】:Blue image for buttons按钮的蓝色图像
【发布时间】:2015-07-01 19:07:41
【问题描述】:

我的成本单元中有按钮,我正在通过代码设置图像。但奇怪的事情正在发生。我的图片是蓝色的。

 BOOL isTheObjectThere = [self.favoriteArry containsObject:self.tableData[indexPath.row]];
        if (isTheObjectThere==TRUE) {
            cell.favBtn.hidden = NO;
            [cell.favBtn setImage:[UIImage imageNamed:@"favorite_star.png"] forState:UIControlStateNormal];
            cell.favBtn.tag = indexPath.row;
            [cell.favBtn addTarget:self action:@selector(unfavoriteBtn:) forControlEvents:UIControlEventTouchUpInside];

【问题讨论】:

  • 不应该是这个[cell.favBtn setImage:[UIImage imageNamed:@"history@3x.png"] forState:UIControlStateNormal];你必须使用这个[cell.favBtn setImage:[UIImage imageNamed:@"history.png"] forState:UIControlStateNormal];
  • 结果是一样的
  • 尝试将按钮类型从默认更改为自定义。
  • 我不知道如果您以这种方式初始化图像,系统是否会使用适当的比例版本,老实说不想测试它,但值得首先目视检查所有图像版本(正常,@2x,@3x)。截图也不错。
  • 或许可以试试theButton = [UIButton buttonWithType:UIButtonTypeCustom];theButton.backgroundColor = [UIColor whiteColor];

标签: ios objective-c uibutton


【解决方案1】:

如 cmets 中所述,您应该使用 UIButtonTypeCustom 类型创建按钮,以防它当前设置为 UIButtonTypeSystem 并且您希望避免色调颜色接管。或者,您可以设置图像渲染模式以确保始终获得原始图像而不是着色图像:

[[UIImage imageNamed:@"favorite_star.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 2022-12-19
    相关资源
    最近更新 更多