0

コンテンツストレッチプロパティはiOS6.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

編集:

キャップ インセット メソッドは、コンテンツ ストレッチの逆です (逆方向に機能します)。コンテンツ ストレッチでは、ストレッチしたい部分を rect でカバーします。以下に例を示します。

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 に答える