2016-11-20 51 views
1

我有一個平方UIImage的UIImageView伸展/重複圖像,並保持其質量

enter image description here

我試圖用這個UIImage對於任何給定的矩形,我將使用作爲創建UIImageView一個邊框到另一個視圖的頂部。

我不想手動設置layer的邊框,但我想使用此圖像。期望的輸出的

實施例:

enter image description here

我嘗試使用UIViewUIViewContentModeScaleToFill

UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 300, 150)]; 
[imageView setImage:[UIImage imageNamed:@"background"]]; 
[imageView setContentMode:UIViewContentModeScaleToFill]; 

但圖像被拉伸和未返回期望的輸出

例輸出:

enter image description here

+0

爲什麼使用圖像創建鑲邊。以編程方式創建邊框並賦予它顏色等等。你想要什麼。 –

+0

我無法通過更改視圖的圖層來實現圖像的完全相同的邊框和陰影。 – iDev

+1

在'UIImage'上使用'resizableImageWithCapInsets:'或'resizableImageWithCapInsets:resizingMode:'。看看「定義可伸縮圖像」部分:https://developer.apple.com/reference/uikit/uiimage?language=objc#symbols – Larme

回答

3

編程可以用陰影效果創建邊界:

[view.layer setCornerRadius:5]; 
[view.layer setShadowColor:[UIColor lightGrayColor].CGColor]; 
[view.layer setShadowOpacity:0.4]; 
[view.layer setShadowRadius:1.0]; 
[view.layer setShadowOffset:CGSizeMake(1.0, 1.0)]; 

但如果你想要做的使用Xcode的界面,你可以做到這一點作爲

  1. 將&拖放到資產中圖像&單擊「顯示屬性檢查器」
  2. 在切片部分選擇「水平和垂直」爲片

現在,只要你想,你將有拉伸圖像而沒有任何失真

enter image description here

使用它

您可以在底部

enter image description here

上點擊「顯示切片」查看圖像切片視圖

你也可以做到這一點編程方式使用

resizableImageWithCapInsets:resizingMode:

+0

謝謝,我認爲值得一提的是,它可以使用'resizableImageWithCapInsets:'以編程方式完成。 – iDev