2011-09-07 64 views
0

我有一个盒子,我想成为expanable只在它的宽度,同时仍然保持圆角,我有。我在Photoshop中制作了图形。它的宽度正好是13px,所以每个角落有6个,中间要重复1个。stretchableImageWithLeftCapWidth导致角落会模糊

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]; 

有谁能告诉我为什么会发生这种情况吗?

谢谢!

回答

1

我发现,你不能仅仅依靠stretchableImageWithLeftCapWidth得到它正确调整大小。

我通常使用的contentStretch属性,它是适用于所有的UIView子类的我,当stretchableImageWithLeftCapWidth不工作。

签出关于contentStretch属性的UIView apple文档。

+0

-1,因为这显然是错误的。在我编写的许多应用程序中,stretchableImageWithLeftCapWidth的作用就像一个魅力。 – mvds

+0

这个平原是如何错误的?使用stretchableImageWithLeftCapWidth找到成功是件好事,但它不适用于所有情况。我在很多场合使用了contentStretch,其中stretchableImageWithLeftCapWidth只是没有剪裁它。 – Shaun

0

只是检查 - 你也许视网膜显示器上观看非视网膜图像?这肯定会把它伸出。

+0

它模糊了这两方面,而不仅仅是一个:( –

+0

如果我刚才添加的图像,未延伸的角落就好了,漂亮清脆的,但如果我连拉伸它+ 1像素比正常的更广泛的角落都还正确的半径,只是模糊 –

+0

看到你已经把高度设置为14px,我假设你垂直方向上也有6px的圆角。你可能会在这里发布图片James?你的代码看起来应该是成功的。 – Madhu

1

您应该检查视图是否不以非整数位置结束。如果选择“使用性能工具运行>核心动画”并选中“颜色未对齐的图像”,所有未对齐的图像将显示为紫色。

如果您的图像是紫色,请尝试找出哪个超级视图造成这种情况。注意事情的中心,因为这是造成这些问题的常见原因。

+0

上的Xcode 4这么做? –

+0

说不上什么秘诀,但一定要在那里。这是仪器的一部分的XCode 3 – mvds

+0

没有看到它,但我双重检查一切我得到了,没办法是图像被放置一半一个px和另一半,它看起来好像xcode由于某种原因模糊了实际的角落 –

相关问题