zoukankan      html  css  js  c++  java
  • IOS图像拉伸解决方案

    UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种:

    第一种方法很简单而且使用性更广。做法就是直接拉伸想要setBackgroundImage的image,代码如下: 

    1. UIImage *image = [UIImage imageNamed:@"image.png"];   
    2. image = [image stretchableImageWithLeftCapWidth:floorf(image.size.width/2) topCapHeight:floorf(image.size.height/2)];  


    设置了左端帽之后,rightCapWidth = image.size.width - (image.leftCapWidth + 1); 也就是说图片中间的一像素用来拉伸。垂直方向同上。设置之后无论把image放到什么控件中都可以自动拉伸了。

      

    1. UIImage *buttonImage = [UIImage imageNamed:@"contact.png"];  
    2. buttonImage = [buttonImage stretchableImageWithLeftCapWidth:floorf(buttonImage.size.width/2) topCapHeight:floorf(buttonImage.size.height/2)];  
    3.   
    4. UIImage *buttonImageselected = [UIImage imageNamed:@"contactselected.png"];  
    5. buttonImage = [buttonImage stretchableImageWithLeftCapWidth:floorf(buttonImage.size.width/2) topCapHeight:floorf(buttonImage.size.height/2)];  
    6.   
    7. UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];  
    8. button.frame = CGRectMake(0024044);  
    9. [button setBackgroundImage:buttonImage forState:UIControlStateNormal];  
    10. [button setBackgroundImage:buttonImageselected forState:UIControlStateHighlighted];  
    11. button.center = CGPointMake(160240);  
    12. [button setTitle:@"button" forState:UIControlStateNormal];  
    13. [button setTitle:@"buttonClick" forState:UIControlStateHighlighted];  
    14. [self.view addSubview:button];  


    第二种方法是在UIButton中加入一个UIImageView,拉伸imageView,然后将button的背景设为clearColor等等。把imageView放入button中,并且sendToBack,得到效果。代码如下:
     //刚才imageView拉伸的代码  

    1. UIImageView *strechTest = [[UIImageyiView alloc] initWithImage:[UIImage imageNamed:@"contact.png"]];  
    2. [strechTest setContentStretch:CGRectMake(0.5f0.5f0.f0.f)];  
    3. CGRect frame = strechTest.frame;  
    4. frame.size.width += 100;  
    5. strechTest.frame = frame;  

     

    1. //把imageView放入button中,并设置为back  
    2.  UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];  
    3.  button1.frame = frame;  
    4.  button1.center = CGPointMake(160140);  
    5.  [button1 addSubview:strechTest];  
    6.  [button1 sendSubviewToBack:strechTest];  
    7.  [button1 setBackgroundColor:[UIColor clearColor]];  
    8.  [button1 setTitle:@"button" forState:UIControlStateNormal];  
    9.  [button1 setTitle:@"buttonClick" forState:UIControlStateHighlighted];  
    10.  [self.view addSubview:button];  


    效果:

  • 相关阅读:
    streamsets 集成 cratedb 测试
    streamsets k8s 部署试用
    streamsets rest api 转换 graphql
    StreamSets sdc rpc 测试
    StreamSets 相关文章
    StreamSets 多线程 Pipelines
    StreamSets SDC RPC Pipelines说明
    StreamSets 管理 SDC Edge上的pipeline
    StreamSets 部署 Pipelines 到 SDC Edge
    StreamSets 设计Edge pipeline
  • 原文地址:https://www.cnblogs.com/ios8/p/ios-pic-lashen.html
Copyright © 2011-2022 走看看