• Iphone通过viewDidLoad设置拉伸图像与按钮样式


    - (void)viewDidLoad
    {
    UIImage *buttonImageNormal = [UIImage imageNamed:@"whiteButton.png"];
    UIImage *stretchableButtonImageNormal = [buttonImageNormal
    stretchableImageWithLeftCapWidth:12 topCapHeight:0];\\设置帽端为12px,也是就左边的12个像素不参与拉伸,有助于圆角图片美观
    [doSomethingButton setBackgroundImage:stretchableButtonImageNormal
    forState:UIControlStateNormal];

    UIImage *buttonImagePressed = [UIImage imageNamed:@"blueButton.png"];
    UIImage *stretchableButtonImagePressed = [buttonImagePressed
    stretchableImageWithLeftCapWidth:12 topCapHeight:0];
    [doSomethingButton setBackgroundImage:stretchableButtonImagePressed
    forState:UIControlStateHighlighted];

    }

    放到对应View类(.m文件)里,引入对应的png图片.

    1、- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 

    这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域和左边框的宽度,第二个参数是不拉伸区域和上边框的宽度。

    第一次用这个函数的时候一直搞不懂为什么只要两个参数就行,至少应该指定左上角和右下角,总共四个参数啊。后来读读文档才明白,只需要两个参数就行了。

    参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。注意:只是对一个像素进行复制到一定宽度。

    附:两个聊天用的汽泡,与参数值。

    stretchableImageWithLeftCapWidth:topCapHeight:函数用法 总结 - 云水禅心 - 云水禅心  15,13

    stretchableImageWithLeftCapWidth:topCapHeight:函数用法 总结 - 云水禅心 - 云水禅心  21,13

     

    2、- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

    这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域和左边框的宽度,第二个参数是不拉伸区域和上边框的宽度。
    如下图:(原图)

    stretchableImageWithLeftCapWidth:topCapHeight:函数用法 总结 - 云水禅心 - 云水禅心

    调整后的图:
    stretchableImageWithLeftCapWidth:topCapHeight:函数用法 总结 - 云水禅心 - 云水禅心
    代码:
    float capWidth = 100.0f;
    float topCapWidth = 100.0f;

    baseGreen = [[[UIImage imageNamed:@"green.png"]stretchableImageWithLeftCapWidth:capWidth   topCapHeight:topCapWidth] retain];

    3、 stretchableImageWithLeftCapWidth:topCapHeight:创建并返回一个具有指定的值上限的新形象的对象。 

     - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

    参数
    leftCapWidth
    要使用的值上限为左侧的宽度。指定0如果你不希望的形象是横向拉伸。有关讨论如何值会影响形象,看到leftCapWidth财产。

    topCapHeight
    要使用的值为顶盖的宽度。指定0如果你不希望的形象是垂直拉伸。有关讨论如何值会影响形象,看到topCapHeight财产。

    返回值
    具有指定值上限的新形象的对象。

    讨论
    在缩放或图像大小,所涵盖的范畴的上限是不进行缩放或调整大小。相反,1像素宽的面积在每个方向上帽盖正是缩放或调整大小。这种技术通常用于创建可变宽度按钮,保有相同的圆角,但其中心区域的放大或缩小的需要。

    使用此方法来添加值上限的图像或改变图像的现有上限的值。在这两种情况下,你获得了一新的图像和原始图像仍然无动于衷。

     

    说白了就是对一个图像做处理,只将中间需要放大的部分进行缩放,而四个角不做拉伸,四个边只做单方向上的拉伸。
     

     

     
  • 相关阅读:
    基于RBAC模型的权限设计:如何设计系统权限体系?
    移动应用开发中AppID、AppKey、AppSecret
    PHP使用Redis的Pub/Sub(发布订阅)命令
    Vue教程:windows下安装npm和cnpm
    Golang panic用法
    Golang 并发Groutine实例解读(二)
    js时间戳与日期格式的相互转换
    总结微信公众平台网页开发中遇到的ios的兼容问题
    总结安装webpack过程中遇到的错误及解决方案
    微信web页面返回刷新
  • 原文地址:https://www.cnblogs.com/daguo/p/2252709.html
Copyright © 2020-2023  润新知