iOS:如何生成彩色&;圆形图标和字母表基于单元格项目,可在UITableView单元格中使用,如gmail应用程序中?
我想有一个圆形和彩色图像视图,在一个表格单元格内。图像必须基于该单元格中的项目生成,使用特定的逻辑(比如在gmail应用程序中有发件人姓名的第一个字母)iOS:如何生成彩色&;圆形图标和字母表基于单元格项目,可在UITableView单元格中使用,如gmail应用程序中?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我想有一个圆形和彩色图像视图,在一个表格单元格内。图像必须基于该单元格中的项目生成,使用特定的逻辑(比如在gmail应用程序中有发件人姓名的第一个字母) 有这样的图书馆吗 要生成图像,您可以创建一个具有所需内容的自定义视图。可以像ui标签一样简单: UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 60, 60)] label.font = [UIFont boldSystemFontOfSize:16]; labe
有这样的图书馆吗 要生成图像,您可以创建一个具有所需内容的自定义视图。可以像
ui标签一样简单:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 60, 60)]
label.font = [UIFont boldSystemFontOfSize:16];
label.textColor = [UIColor whiteColor];
label.textAlignment = NSTextAlignmentCenter;
label.backgroundColor = [UIColor lightGrayColor];
label.layer.borderRadius = label.frame.size.height / 2.0f;
一旦你有了这个(老实说,你可以直接使用这个…),你就可以把它转换成一个图像:
UIGraphicsBeginImageContext(label.frame.size);
label.renderInContext(UIGraphicsGetCurrentContext());
UIImage *image = UIGraphicsGetImageFromCurrentContext();
UIGraphicsEndImageContext();
现在您有了一个UIImage
,您应该将它缓存并存储在某个地方,这样您就可以在每次需要时检索它,而无需重新渲染它
要为视图着色,可以修改上述内容,或使用图像模板:
UIImage *templateImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
图像不透明像素将使用tintColor
着色。在这种情况下,您必须修改上面的内容,以便对文本使用clearColor
。尝试使用类似的方法,使方形UIView的.layer.cornerRadius=height/2,UILabel居中。我必须添加label.layer.maskToBounds=YES,然后它就工作了