设置UISlider的ThumbImage,图片非常模糊, 使用代码生成图片就OK了
设置UISlider的ThumbImage,图片非常模糊, 使用代码生成图片就OK了
这样设置图片非常模糊:
[self.slider setThumbImage:[UIImage imageNamed:@"playDot"] forState:UIControlStateNormal];
有锯齿:
正确的姿势:
UIImage *img = [OralTrainingHelper p_createImageWithColor:UIColorHex(#846FFD) andSize:CGSizeMake(16, 16)]; UIImage * resImg = [OralTrainingHelper p_generateCornerRadiusImage:img cornerRadius:8]; [self.slider setThumbImage:resImg forState:UIControlStateNormal];
效果如下:
两个工具类方法:
/// 纯色转图片 /// @param color 颜色 /// @param size 图片尺寸 + (UIImage *)p_createImageWithColor:(UIColor *)color andSize:(CGSize)size { CGRect rect = CGRectMake(0.0, 0.0, size.width, size.height); UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [color CGColor]); CGContextFillRect(context, rect); UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return resultImage; } /// UIImage加圆角 /// @param image 图片 /// @param cornerRadius 圆角 + (UIImage *)p_generateCornerRadiusImage:(UIImage *)original cornerRadius:(CGFloat)cornerRadius { UIGraphicsBeginImageContextWithOptions(original.size, NO, 0.0); CGContextRef ctx = UIGraphicsGetCurrentContext(); CGRect rect = CGRectMake(0.0, 0.0, original.size.width, original.size.height); CGContextAddPath(ctx, [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius].CGPath); CGContextClip(ctx); [original drawInRect:rect]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; }
18年被这个问题困扰了好久,终于解决了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2020-02-28 科大讯飞语音评测卡死,卡这里两天
2016-02-28 hdf第一周完了,突然时间静止.,醒了就早点去公司上班,再努力一点