开发者

stretchableImageWithLeftCapWidth causes corners to be blurry

开发者 https://www.devze.com 2023-04-03 07:05 出处:网络
I have a box that i want to be expanable only on its width, while still maintaining the rounded corners that I have. I made the graphic in photoshop. and it is exactly 13px wide, so 6 for each corner

I have a box that i want to be expanable only on its width, while still maintaining the rounded corners that I have. I made the graphic in photoshop. and it is exactly 13px wide, so 6 for each corner and 1 for the middle to repeat.

UIImage* img = [[UIImage imageNamed:@"screen_displayer_rounded.png"] stretchableImageWithLeftCapWidth:6 topCapHeight:6];
    CGRect rect = CGRectMake(272.0f, 14.0f, 100.0f, 30.0f);
    UIImageView* imgView = [[UIImageView alloc] initWithFrame:rect];
    [imgView setImage:img];

Could anyone tell me why this might be happen开发者_StackOverflow社区ing?

Thanks!


I have found that you cant just rely stretchableImageWithLeftCapWidth to get it to resize correctly.

I normally use the contentStretch property that is available to all UIView subclasses when stretchableImageWithLeftCapWidth doesnt work for me.

Checkout the UIView apple docs regarding the contentStretch property.


You should check if the view doesn't end up at a non-integer position. If you choose "Run with performance tool > Core Animation" and check "Color misaligned images", all misaligned images will show purple.

If your image is purple, try to find out which superview is causing this. Look out for things being centered, since that is a common cause for these issues.


Just checking - are you perhaps viewing a non-retina image on a retina display? This would definitely stretch it out.

0

精彩评论

暂无评论...
验证码 换一张
取 消