如何拉伸有透明区域的png图片来做UIButton的背景图片
来源:互联网 发布:2am 2pm 知乎 编辑:程序博客网 时间:2024/04/20 09:01
1.使用boundingRect来动态计算文本的尺寸
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary*)attributes context:(NSStringDrawingContext*)contextNS_AVAILABLE_IOS(7_0);
//比如文本如下,通过计算得到的尺寸是120*120
//那么可以设置btn.frame = {0,0,120,120};
//设置背景图片(四周有透明区域的png图片)
//这样文字就会处于背景图片之外.为了解决这个问题,我们首先要做的就是,把btn的上下左右各加20.这样背景图片会自动拉伸.变成{0,0,160,160};
//这个时候,就会变成下面的样子,由于文字会自动从左侧开始绘制,到一行的结尾.在自动换行.
//为了解决这个问题,需要使用到btn的另外一个属性
@property(nonatomic) UIEdgeInsetscontentEdgeInsets UI_APPEARANCE_SELECTOR;// default is UIEdgeInsetsZero
btn.contentEdgeInsets=UIEdgeInsetsMake(20,20,20,20);
//这样文本在按钮btn中显示会距离btn的frame四周有20的间距
//这样文字就能正常的显示在背景图片之中了.
//但是另外一个问题又来了.当文字过多的时候.由于图片拉伸是按照比例拉伸的,当图片拉伸,图片的间隙也会放大.而且图片也的边缘也越来与模糊
//但是另外一个问题又来了.当文字过多的时候.由于图片拉伸是按照比例拉伸的,当图片拉伸,图片的间隙也会放大.而且图片也的边缘也越来与模糊
//解决方法,利用UIImage的对象方法将对图片进行指定范围的拉伸
- (UIImage*)resizableImageWithCapInsets:(UIEdgeInsets)capInsetsNS_AVAILABLE_IOS(5_0);// create a resizable version of this image. the interior is tiled when drawn.
- (UIImage*)resizableImage:(NSString*)name
{
UIImage *normal = [UIImageimageNamed:name];
CGFloat w = normal.size.width*0.5;
CGFloat h = normal.size.height*0.5;
return [normal resizableImageWithCapInsets:UIEdgeInsetsMake(h, w, h, w)];
{
UIImage *normal = [UIImageimageNamed:name];
CGFloat w = normal.size.width*0.5;
CGFloat h = normal.size.height*0.5;
return [normal resizableImageWithCapInsets:UIEdgeInsetsMake(h, w, h, w)];
}
//开始图片原始大小为60*60 ->将拉伸到160*160
//1.垂直方向上拉伸(保护顶部一半不拉伸, 底部一半不拉伸.)
//变成了(60 * 160)
—>->
//2.水平方向上拉伸(保护左边一半不拉伸,保护右边一半不拉伸)
//变成了(160 * 160 )
->>
0 0
- 如何拉伸有透明区域的png图片来做UIButton的背景图片
- UIButton的resizableImageWithCapInsets使用解析--拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片
- UIButton 的图片自动拉伸
- 拉伸图片的指定区域
- 对于有背景图片的对话框上的按钮如何透明
- 过滤PNG透明区域的鼠标状态
- 显示透明的PNG图片
- ios--UIButton拉伸背景图片
- 取得图片的透明区域
- ios设置图片的拉伸区域
- 如何准确定位 有透明区域纹理图的位置
- table的背景图片拉伸
- 页面背景图片的拉伸
- IE6下使PNG背景图片透明的方法
- ie6下使作为背景图片的PNG透明
- ie6下使作为背景图片的PNG透明
- 解决ie6 png 作为背景图片的透明问题
- 如何使用可拉伸的图片自定义UIButton,类似9patch效果
- 手动计算KMP算法的Next数组与NextVal数组
- Android视频播放器mediaplayer
- java基础笔记
- Java中的异常(1)
- ZOJ 3886 Nico number(线段树)
- 如何拉伸有透明区域的png图片来做UIButton的背景图片
- poll&&epoll实现分析(二)——epoll实现
- poj 1823 Hotel(线段树·区间更新·lazy tag)
- 32位机和64位机编程时应该注意些什么
- HDU2.2.5 三角形
- 不要死性不改
- Django之第一个app<15>
- UVa 10635 - Prince and Princess(LCS转LIS)
- listview实现自动向上滚动,快速滚动,和滚动条的一些设置