stretchableImageWithLeftCapWidth导致角落模糊

时间:2011-09-07 00:06:08

标签: iphone objective-c ios xcode

我有一个盒子,我想只在它的宽度上扩展,同时仍然保持我的圆角。我在photoshop中制作了图形。它正好是13px宽,所以每个角落6个,中间重复1个。

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

有人能告诉我为什么会这样吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

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

如果您的图片是紫色的,请尝试找出导致此问题的超级视图。注意事物的中心,因为这是解决这些问题的常见原因。

答案 1 :(得分:1)

我发现你不能仅仅依赖stretchableImageWithLeftCapWidth来正确调整大小。

我通常使用当stretchableImageWithLeftCapWidth对我不起作用时可用于所有UIView子类的contentStretch属性。

查看有关contentStretch属性的UIView apple文档。

答案 2 :(得分:0)

只是检查 - 您是否在视网膜显示屏上观看非视网膜图像?这肯定会延长它。