5

まず第一に、ついにiPhoneのNinePatchサポートがあります。Tortuga22チームのおかげでBIGになりました。残念ながら、私は彼らのライブラリを私のプロジェクトに追加することができませんでした。

ソースファイルをプロジェクトにドラッグアンドドロップするだけで、大量の「そのようなファイルやディレクトリはありません」というエラーが発生します。libNinePatch.a-fileを外部フレームワークとして参照すると、同じ結果が得られます。

これを行う適切な方法は何ですか?彼らの側からの指示はないので、これを行うにはかなり簡単な方法が必要だと思います。

前もって感謝します。
// Abeansits

4

5 に答える 5

1

これは古い質問ですが、Objective CでninePatchを検索している人を支援するために、ios5以降のUIImageクラスにninePatchが行うことを実行するメソッドがあることを通知したいと思います。

UIImageリファレンスから:

討論

このメソッドを使用して、画像にキャップインセットを追加したり、画像の既存のキャップインセットを変更したりします。どちらの場合も、新しい画像が返され、元の画像はそのまま残ります。

画像の拡大縮小またはサイズ変更中、キャップで覆われた領域は拡大縮小またはサイズ変更されません。代わりに、各方向のキャップで覆われていないピクセル領域は、画像のサイズを変更するために、左から右、上から下に並べて表示されます。この手法は、同じ丸みを帯びた角を保持しながら、必要に応じて中央領域が拡大または縮小する可変幅ボタンを作成するためによく使用されます。最高のパフォーマンスを得るには、サイズが1x1ピクセルの領域であるタイル領域を使用します。

可用性iOS5.0以降で利用できます。

UIImage.hで宣言

トップが修正された画像が必要な場合の使用例:

UIImage* image = [UIImage imageNamed:@"YourImage.png"];
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(25., 0, 0, 0)]

お役に立てば幸いです。

于 2012-08-28T21:46:30.263 に答える
1

まだこれに苦労しているすべての人に、PodspecをCocoaPodのリポジトリにアップロードしたことを伝えたいと思います。

これは、プロジェクトでCocoaPodsを使用している場合(そしてなぜ使用しないのですか?)、次を追加するだけでよいことを意味します。

pod 'Tortuga22-NinePatch'

Podfileに追加すると、NinePatchがサポートされます。(まだARC互換ではないことに注意してください。プルリクエストは大歓迎です!)

于 2014-02-05T15:37:01.483 に答える
0

Are you #include-ing the main header file(s) in whichever classes you need them or in the prefix.pch file?

于 2011-07-06T23:51:37.510 に答える
0

プロジェクトにファイルを追加できるはずです。このSOの質問への回答が役立つ場合があります。

また、UIImageは伸縮可能な画像を提供することに注意してください。詳細については、 -stretchableImageWithLeftCapWidth:topCapHeight:を参照してください。おそらくAndroidアプリとリソースを共有するために、実際の9つのパッチ形式で画像を読み取る必要がある場合は役に立ちませんが、実際に必要なのはそれだけであることがよくあります。

于 2011-07-05T15:52:03.833 に答える
0

ソースパッケージをGitHubからダウンロードすると、サンプルプロジェクトであるNinePatchDemoが含まれていることがわかります。これを調べると、必要なすべての情報が得られるはずです。

NinePatchXcodeプロジェクトを[その他のソース]の下のNinePatchDemoプロジェクトにドロップしたことがわかります。同じ方法で、NinePatchプロジェクトを独自のプロジェクトにドラッグアンドドロップできます。ビルドとターゲットの設定をチェックして、ビルドに必要なパス/ライブラリが含まれていることを確認できます。

ターゲットのその他のリンカーフラグが必要なようです-all_load -ObjC。プロジェクトフォルダーがninepatchフォルダーと同じレベルにある場合(githubからのダウンロードなど)、ターゲットにヘッダー検索パスも設定する必要があります。に../NinePatch//**、フォルダを移動した場合はそれに応じて変化します。

それ以外に私が見ることができる唯一のことは、もちろん、ヘッダーを含める必要があるということです#import <TUNinePatch.h>

NinePatchDemoは私のためにうまく構築されたので、それらのソースが機能することを確認できます。

于 2011-07-10T19:09:55.707 に答える