解决使用drawRect绘制界面,图片拉伸问题
来源:互联网 发布:推荐系统常用算法 编辑:程序博客网 时间:2024/06/07 02:34
今天在解决一个问题,已知我有一个View是用drawRect绘制的,该view有一个背景图片,但是设计师提供的图片很小,而且这个view大小也是不定的,随时都有可能会变化,现在问题是:如何正确拉伸该背景图片使之正确绘制到view上?
之前遇到的问题是,我拉伸了图片,但是一直无效,将UIImage对象生硬的绘制上,图片被按照一定比例拉伸,很虚,而需求是局部拉伸。最后我的解决办法是
+ (void)drawTiledBackgroundAtCTX:(CGContextRef)ctx drawBoardRect:(CGRect)mRect imageName:(NSString *)strName{ UIGraphicsBeginImageContext(mRect.size); UIImage* tiledImg = [UIImage imageNamed:strName];//@"main_background.png" tiledImg = [tiledImg resizableImageWithCapInsets:UIEdgeInsetsMake(tiledImg.size.height/2, tiledImg.size.width/2, tiledImg.size.height/2 + 1, tiledImg.size.width/2 +2)]; [tiledImg drawInRect:mRect]; UIImage *imgTmp = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();// CGContextDrawTiledImage(ctx, mRect, imgTmp.CGImage);//(CGRect){ CGPointZero, tiledImg.size} // or [imgTmp drawAsPatternInRect:mRect];}
这是拉伸图片 所封装的代码,其实就是先画一个所需大小的图片,再绘制。需要注意的是tiledImg对象调用完resizable...函数后,返回一个UIImage对象,切记再赋给tiledImg对象,今天就因为没有赋值,没出现预期结果,迷茫了好一阵子。。。
- 解决使用drawRect绘制界面,图片拉伸问题
- 使用JavaScript解决网页图片拉伸问题
- drawRect的绘制的使用(绘制文本字符、绘制图片、绘制图形)
- C# 解决DrawImage绘制图片拉伸产生渐变
- C# 解决DrawImage绘制图片拉伸产生渐变
- 解决RatingBar图片被拉伸问题
- 【完美解决系列】解决在Android中使用background时导致图片被拉伸的问题
- Android 使用Canvas中的drawBitmap方法绘制拉伸的图片
- drawRect绘制图片、箭头、矩形(Demo)
- Quartz2D-drawRect方法绘制图片、文字
- IOS图片拉伸问题
- 图片的拉伸问题
- iOS图片拉伸问题
- Zxing4.7.1 图片拉伸解决
- Glide的基本使用以及图片拉伸问题。
- photo-sphere-viewer.js使用时图片拉伸的问题
- iOS 开发 图片拉伸问题
- iOS 开发 图片拉伸问题
- 10.10-11.8号笔试面试总结
- 一些递推题目的求解经验
- [转载]数学建模应当掌握的十类算法
- 关于SQL SERVER里的服务器角色和用户权限
- Java Collection
- 解决使用drawRect绘制界面,图片拉伸问题
- ssh下scp远程传输文件
- SOJ 2652: Oulipo
- Java Exception
- 京东商城涉足保险业务
- java JNI(java native interface)
- Hibernate继承映射
- ACM-数论之A hard puzzle——hdu1097
- 浮点数陷阱