UICell上的setTint返回纯色

时间:2016-05-23 18:28:51

标签: objective-c

我试图在将图像设置为UICell的背景之前设置图像的色调颜色,但是它只返回基于我的UIColor的纯色

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    UIImage *testImage = [UIImage imageNamed:@"ImageName.png"];
    testImage = [testImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
    UIImageView *testView = [[UIImageView alloc] initWithImage:testImage];

    [testView setTintColor:[UIColor greenColor]];
    cell.backgroundView = testView;

}

1 个答案:

答案 0 :(得分:0)

如果单元格显示为纯色,则表示图像本身不透明。 UIImageRenderingModeAlwaysTemplate基于该像素的图像中存在的Alpha通道上的每个像素的颜色(即,如果没有透明度,则您将获得纯色)。您可以阅读有关此in the documentation here的更多信息。