0

すべてのNSImageViewの名前を保持するNSTableViewがあり、NSImageViewが追加された順序に応じて、最後の名前が前面に表示されます。

しかし、ユーザーがNSImageViewを別のユーザーの前に表示できるようにしたい場合は、どうすればよいでしょうか。

前もって感謝します。

4

2 に答える 2

2

NSView リファレンス ページで説明されているように、ビューのサブビューの z オーダーは、ビューのsubviews配列内の順序によって指定されます。を使用して他のサブビューに関連する新しいサブビューを挿入できます。また、プロパティを取得し、必要に応じてビューを並べ替え、新しい順序を設定するために呼び出すこと-addSubview:positioned:relativeTo:で、既存のサブビューを並べ替えることができ ます。subviews-setSubviews:

具体的には、ドキュメントは次のように述べています。

サブビューの順序は後ろから前にあると見なすことができますが、これは無効化や描画動作を意味するものではありません。

于 2012-06-20T00:58:59.753 に答える
1

あなたが求めているのは、ビューの z オーダーを制御する方法だと思います。

歴史的なパフォーマンス上の理由から、これは (iOS の UIKit とは異なり) AppKit では十分にサポートされていませ

これに対する一般的なアプローチ (最近の OS X リリースで) は、ネイティブで z オーダーをサポートするコア アニメーション (特にCALayer) を使用することですが、これは必要なものに対しておそらくやり過ぎです (いずれにせよ学習が必要になります)。あなたのための曲線)。

あなたは実際に何をしようとしていますか?これらの画像 (画像ビュー) は正確に重なり合っていますか? その場合、最も簡単な (そしてパフォーマンスがはるかに優れた) アプローチは、単一NSImageViewのものを用意し、それに送信-setImage:...して表示される画像を変更することです。

于 2012-06-20T00:46:06.550 に答える