質問

ダイアログを必要とするサイズにスケーリングするダイアログの境界を実装したい。おそらく、この種のものにはより多くの従来の名前があります。ある場合、誰かがタイトルを編集する場合、それは素晴らしいことです。

とにかく、私はこれをやりたいと思っています。そうすれば、ボーダーアートを小さく、大規模、または奇抜な非均一なディメーションにスケーリングする視覚的アーティファクトなしで、あらゆるサイズのダイアログを持つことができます。これがどのように行われるかについていくつかのアイデアがありますが、iPhoneにとってどちらが良いかはわかりません。少し質問があります。

1)基本的にDrawRectメソッドを過負荷にし、メソッドが呼び出されたときに適切なスケールである必要がある画像を描画するコンテンディングビューオブジェクトを作成する必要がありますか、または8つのuiimageViewsを含む単純なビューオブジェクトをメインする必要がありますか?アニメーションのように、結果のダイアログクラスを積極的にスケーリングする必要がある場合、後者のアプローチは機能しないと思います。

1b)DrawRectのオーバーロードが進む方法である場合、誰かがdrawRect()から直接画像を直接描画する例を示すサンプルコードまたはリンクを持っていますか?

2)一般的に作成する方が良いです

a)セグメントが画像の適切な1x1グリッドにある3 x 3画像?もしそうなら、この画像の一部からDrawRectの私のターゲットビューに描画するのは簡単ですか(以前の仮定がdrawRectを使用する必要があるという正しい場合)?

b)8つの異なるファイルに個別にピースがありますか?

更新:明確にするために、アイデアは、カスタマイズされたボーダーアートを取得し、2番目、4番目、6番目、および8番目のセル(3x3セルグリッド内)を伸ばして、それらの資産だけで任意のサイズの境界線を形成できることです。単純な画像だけを伸ばすと、角が歪んでしまうので、必要に応じて偶数番号のセルを伸ばし、角にタックして歪みがありません。私はこれが以前に行われたのを見たので、それが標準的なものであるかもしれないと思っていて、私がそれを呼んだもの以外に標準的な命名を持っています。

とにかく、コンテナに8つのuiimageViewsを追加することは、drawrectでuiimageを飛行中のuiimageを描くほど効率的ではないので、yをコンテキストに翻訳してスケーリングするためにコンテキストに必要な変換を適用した後、cgcontextdrawimage()を使用してそのアプローチを取得することをお勧めしました。この関数は、画像の左下隅から左上隅から左上のUiviewに描かれ、Y軸が反転することなく逆さまになっています。 UiimageがUIViewsと同じ方向に描画するため、DragatPointのようなUIIMAGE関数も同様に機能しますが、反転のための提案に気付きました。私は前者との実装を続け、それがどうなるかを見ていますが、もう1つ質問します。

誰かが、これらのアプローチのどれがより効率的で、より速いかなどを知っているでしょうか?

役に立ちましたか?

解決

私がフォローしているかどうかはわかりませんが、これが答えで私のベストショットです...

DrawRectの使用:または、個々のuiimageViewsを親ビューに追加することは、完全にあなた次第です。 uiimageviewは、カプセル化された機能を無料で提供しますが、それ以外の場合は外観と同じです。

DrawRectルートに行きたい場合は、UIImageのDrawatPoint:Methodを使用するだけです。あなたがそれを望む場所のために数学をして、それを描きます。親ビューの寸法に基づいてポイントを計算できます。

スケーリングに関しては、これらの画像をスケーリングせずにサイズを変更することは不可能であるため、事前に計画を立てて、オリジナルを表示するよりも大きくても大きくします。

それが少し役立つことを願っていますか?

乾杯

他のヒント

ボックスがuiview(またはサブクラス)であると仮定して、ダイアログボックスに境界線が必要な場合は、レイヤーの境界プロパティを設定し、システムが境界線を描画させます。

#import <QuartzCore/QuartzCore.h> 
// ... 

view.layer.borderWidth = 2;
view.layer.borderColor = [UIColor whiteColor].CGColor; 
view.layer.cornerRadius = 0;  // 0=square corners, >0 for rounded
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top