stretchableImageWithLeftCapWidth:topCapHeight不工作的i

2019-09-23 13:37发布

我有一个名为ShadowView一个UIImageView子类,这显示了可在任何使用的阴影。 ShadowViews是从笔尖加载。

在的initWithCoder :,我有下面的代码:

- (id)initWithCoder:(NSCoder *)decoder {
    self = [super initWithCoder:decoder];
    if (self != nil) {
        UIImage *shadowImage = [[UIImage imageNamed:@"drop_shadow_4_pix.png"] stretchableImageWithLeftCapWidth:4 topCapHeight:4];

        [self setContentMode:UIViewContentModeScaleToFill];
        [self setImage:shadowImage];
    }
    return self;
}

当我运行的应用程序,不过,这个图像不会出现。

但是,如果我将其更改为

...
UIImage *shadowImage = [UIImage imageNamed:@"drop_shadow_4_pix.png"];
...

它工作正常,但它被拉伸错误。

任何想法,为什么发生这种情况?

编辑:这是一样的,当我以编程方式加载shadowview,与initWithFrame:方法同样实施的initWithCoder :.

另一个编辑:我想我解决了这个问题。 我需要设置自动尺寸口罩。

Answer 1:

是的ShadowImage零?

UIImage *shadowImage = [[UIImage imageNamed:@"drop_shadow_4_pix.png"] stretchableImageWithLeftCapWidth:4 topCapHeight:4];

该方法可以返回零如果基本图像是小于5个像素宽或5个像素高,因为它需要的4个像素为帽+ 1点的像素伸展。



文章来源: stretchableImageWithLeftCapWidth:topCapHeight doesn't work in initWithCoder: of UIImageView subclass