UI-UIImageView的圖片填充方式(contentMode)_圖片作為控件背景圖的拉伸方式(stretch)介紹


常用圖片填充方式

  • 這里只介紹三個最常用的圖片填充方式
    • UIViewContentModeScaleToFill模式會導致圖片變形。例如:

    • UIViewContentModeScaleAspectFit會保證圖片比例不變,而且全部顯示在ImageView中,這意味着ImageView會有部分空白。例如:

    • UIViewContentModeScaleAspectFill也會證圖片比例不變,但是是填充整個ImageView的,可能只有部分圖片顯示出來。例如:


圖片作為控件背景圖的拉伸方式

  • 當一個圖片作為一個控件的背景圖時,並且圖片的尺寸< 控件的尺寸.則需要進行拉伸.而普通的以上三種模式達不到預期效果,首先看未拉伸以前效果:運行以后超級難看

  • 進行拉伸以后的效果

  • 拉伸代碼:

  • 其中stretchableImageWithLeftCapWidth這個方法是讓程序員確定從哪個位置進行拉伸,此代碼中填寫的是圖片高度的二分之一,寬度的二分之一,也就是中心點的位置向外進行平鋪,則圖片可以達到整個控件.以達到效果.

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    // 加載背景圖片
    UIImage *normal = [UIImage imageNamed:@"RedButton"];
    UIImage *highlighted = [UIImage imageNamed:@"RedButtonPressed"];
    
    // 設置圖片的拉伸方式
    normal = [normal stretchableImageWithLeftCapWidth:normal.size.width * 0.5 topCapHeight:normal.size.height * 0.5];
    highlighted = [highlighted stretchableImageWithLeftCapWidth:highlighted.size.width * 0.5 topCapHeight:highlighted.size.height * 0.5];
    
    // 把圖設置給按鈕
    [self.loginButton setBackgroundImage:normal forState:UIControlStateNormal];
    [self.loginButton setBackgroundImage:highlighted forState:UIControlStateHighlighted];
}


  • 拉伸原理圖:畫的不好見諒.
  • 除了四個角其他位置全部是由中心點平鋪而來.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM