0

内容拉伸属性在 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];

也许我错过了一些东西,有什么建议吗?

4

1 回答 1

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

因此,您应该以不同的方式制作插图。

于 2012-12-03T02:07:20.303 回答