2011-09-07 122 views
1

你好,我有一個形象,像這樣 enter image description herestretchableImageWithLeftCapWidth使圖像模糊

而且我認爲它可能延伸就好了。它的17px寬和30px高。

我只是想能夠水平拉伸它。但是當我伸展它時,這就是我最終的結果。 enter image description here

有了,伸出它... enter image description here

也許我是挑剔,這些角落,但它只是看起來像它應該工作一點不比它。

任何幫助將會很棒!

int textWidth = [text length] * 10; 

    CGRect rect = CGRectMake(32.50f, 14.5f, 40.0f, 30.0f); 

    UIImage* img = [[UIImage imageNamed:@"screen_displayer_rounded.png"] stretchableImageWithLeftCapWidth:8 topCapHeight:0]; 
    UIImageView* imgView = [[UIImageView alloc] initWithFrame:rect]; 

    [imgView setImage:img];  

    //[imgView addSubview:label]; 
    NSLog(@"imge %@", imgView.subviews); 

    [self addSubview:imgView]; 

回答

3

你應該保持至少5個像素水平和垂直6。因此,使用5x6作爲您的大寫字母,而不是4x0(btw,0表示拉伸整個圖像)。這樣,iOS會使用第六和第七像素(以下紅色標記)來展開圖像。

corner

+0

對不起,發佈了錯誤的代碼,它通常是8,這將使正確的8,這使得16,所以1 px遺留伸展,仍然不工作。與上面相同的東西 –

+0

你可以嘗試添加rect = CGRectIntegral(rect); ?定位在一個像素的一小部分有時會導致模糊的圖形。並用8x6替換8x0帽。 – Jano

+0

已發佈它!!!!!!!!!!!!!!!!!!!!!你能解釋一下嗎? –

0

看着在Photoshop圖像,它看起來像你的水平和垂直圓角分別爲5像素和6個像素。所以,下面一行應該如下:

UIImage* img = [[UIImage imageNamed:@"screen_displayer_rounded.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:6]; 
+0

仔細看看頂部的例子,它沒有以任何方式拉伸,角落只是模糊,即使我將寬度設置爲10000,角落保持完全相同,只是模糊不清... –

+0

嘿,再次,詹姆斯,在你的更新的問題,topCapHeight仍然爲0.只是爲了驗證,你是否試圖將其設置爲6? – Madhu