图像视图不推荐使用的方法

时间:2012-12-03 01:56:41

标签: iphone objective-c ios

在iOS 6.0中不推荐使用内容拉伸属性,我找不到似乎正常工作的替代方法。

以下是适用但在iOS 6.0中弃用的代码:

UIImageView *sectionsSeparator = [[UIImageView alloc] initWithFrame:CGRectMake(x, 0, separatorWidth, totalHeight)];
sectionsSeparator.image = [self imageForSectionsSeparator];
sectionsSeparator.contentStretch = CGRectMake(0, 0.25f, 1, 0.5f);
[self addSubview:sectionsSeparator];

我尝试了下面的代码,但图片没有正确排列:

UIImageView* sectionsSeparator = [[UIImageView alloc] initWithFrame:CGRectMake(x, 0, separatorWidth, totalHeight)];
[sectionsSeparator setImage:[[self imageForSectionsSeparator] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0f, 0.25f, 1.0f, 0.5f)]];
[overlayView addSubview:sectionsSeparator];

也许我错过了什么,有什么建议吗?

1 个答案:

答案 0 :(得分:3)

被弃用并不意味着它停止工作,它只是意味着您应该选择替代方案,但旧方法仍然有效。

无论如何,如果你想避免弃用的东西,你可以按照文档中的规定创建一个可伸缩的图像:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIView_Class/DeprecationAppendix/AppendixADeprecatedAPI.html

编辑:

cap inset方法与内容拉伸方法相反(它向后工作)。在内容延伸上,你用一个矩形覆盖你想要拉伸的东西,这是一个例子:

http://j0ris.tumblr.com/post/7345178587/uiview-contentstretch

然而,在 resizableImageWithCapInsets 中,您可以涵盖不要想要拉伸的内容。

  

在缩放或调整图像大小的过程中,上限覆盖的区域是   没有缩放或调整大小。相反,像素区域未被盖子覆盖   在每个方向上都是平铺,从左到右和从上到下,以调整大小   图像。

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/instm/UIImage/resizableImageWithCapInsets

所以你应该以不同的方式制作插图。