iOS实现带文字的圆形头像效果

2020-01-18 16:47:08刘景俊

需要的 我们都处理好了 这下可以直接画文字了 还是在drawRect方法中


-(void)drawRect:(CGRect)rect{
  
  //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画
  CGContextRef context = UIGraphicsGetCurrentContext();
  [self caculateColor];//计算颜色
  
  /*画圆*/
  CGContextSetRGBFillColor (context,_colorPoint, 0.5, 0.5, 1.0);//设置填充颜色
  //  CGContextSetRGBStrokeColor(context,red,green,blue,1.0);//画笔线的颜色
  
  //填充圆,无边框
  CGContextAddArc(context, self.frame.size.width/2.0, self.frame.size.width/2.0, self.frame.size.width/2.0, 0, 2*M_PI, 0); //添加一个圆
  CGContextDrawPath(context, kCGPathFill);//绘制填充
  
  
  /*写文字*/
  //  CGContextSetRGBFillColor (context, 1, 0, 0, 1.0);//设置填充颜色
  NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial-BoldMT" size:self.frame.size.width/3.0], NSFontAttributeName,[UIColor whiteColor],NSForegroundColorAttributeName, nil];
  CGSize size = [self caculateLableSize];
  CGFloat X = (self.frame.size.width-size.width)/2.0;
  CGFloat Y = (self.frame.size.height-size.height)/2.0;
  [self.title drawInRect:CGRectMake(X, Y, self.frame.size.width, self.frame.size.width) withAttributes:dic];
}

测试一下


UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 50, 300, 20)];
label.text = @"文字不同,背景颜色也不会相同";
[self.view addSubview:label];
NSArray *strs = @[@"为我",@"样的",@"好啊",@"H在",@"hc",@"2才",@"哈哈",@"打算打算打算的",@"还有人v",@"哈哈"];
for (int i=0; i<10; i++) {
  RoundHeadView *head = [[RoundHeadView alloc] initWithFrame:CGRectMake(30, 100+(40*i), 40, 40)];
  [head setTitle:strs[i]];
  [self.view addSubview:head];
}

ios,设置圆形头像,圆形头像,ios实现圆形头像

总结

好了,到这就大功告成了,大家都学会了吗?希望本文的内容对各位iOS开发者们能有所帮助,如果有疑问大家可以留言交流。谢谢大家对ASPKU的支持。


注:相关教程知识阅读请移步到IOS开发频道。