iphone - 可拉伸(stretch)ImageWithLeftCapWidth :topCapHeight doesn't work in initWithCoder: of UIImageView subclass

标签 iphone objective-c uiimageview uiimage

我有一个名为 ShadowView 的 UIImageView 子类,它显示一个可以在任何东西下使用的阴影。 ShadowViews 将从 Nib 加载。

在 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"];
...

它工作正常,但拉伸(stretch)错误。

关于为什么会发生这种情况的任何想法?

编辑:当我以编程方式加载 shadowview 时也是如此,initWithFrame: 实现与 initWithCoder: 类似。

另一个编辑:我想我解决了这个问题。我需要设置自动调整大小的蒙版。

最佳答案

shadowImage 为零吗?

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

如果基础图像的宽度小于 5 像素或高度小于 5 像素,则该方法可能会返回 nil,因为它需要 4 像素来拉伸(stretch)大写字母 + 1 像素。

关于iphone - 可拉伸(stretch)ImageWithLeftCapWidth :topCapHeight doesn't work in initWithCoder: of UIImageView subclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274433/

相关文章:

iphone - 我们如何从本地获取图像?

ios - TableView 索引困惑

objective-c - 循环最多运行一次,(循环增量从未执行)

ios - 如何从UIImageView中的“User”类获取User Image? Parse.com

iphone - 如何在 Landscape 中限制 modalViewController?

ios - 使用 UIWebView 搜索以突出显示 PDF 中的文本

ios - 如何使用 NSURLCache 缓存由 NSURLProtocol 提供的内容

ios - 在swift2中按下并拖动橡皮擦以获取uiimageview

iphone - 如何在 UITableView 单元格上添加图像?

ios - iOS版本无法在注册的iPhone上运行